Hi Carl,
On 2/24/19 2:55 AM, Carl Willis via Tech-talk wrote:
> When attempting to build Epics Base v7.0.2 on Windows 10 using make
> from msys2 (or other sources) and Visual Studio 2017 Community
> Edition, this type of error keeps appearing:
>
> cl -EHsc -GR -nologo -FC -D__STDC__=0
> -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Ox -GL -Oy-
> -W3 -w44355 -w44344 -w44251
> -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -MD -DEPICS_BUILD_DLL
> -DEPICS_CALL_DLL -TP -I. -I../O.Common -I.
> -I../../src/osi/compiler/msvc -I../../src/osi/compiler/default -I.
> -I../../src/osi/os/WIN32 -I../../src/osi/os/default -I..
> -I../../src/as -I../../src/bucketLib -I../../src/calc
> -I../../src/cvtFast -I../../src/cppStd -I../../src/cxxTemplates
> -I../../src/dbmf -I../../src/ellLib -I../../src/env -I../../src/error
> -I../../src/fdmgr -I../../src/flex -I../../src/freeList
> -I../../src/gpHash -I../../src/iocsh -I../../src/log
> -I../../src/macLib -I../../src/misc -I../../src/osi -I../../src/pool
> -I../../src/ring -I../../src/taskwd -I../../src/timer -I../../src/yacc
> -I../../src/yacc -I../../src/yajl
> -I/c/epics/base-7.0.2/include/compiler/msvc
> -I/c/epics/base-7.0.2/include/os/WIN32 -I/c/epics/base-7.0.2/include
> -I/c/epics/base-7.0.2/include/compiler/msvc
> -I/c/epics/base-7.0.2/include/os/WIN32 -I/c/epics/base-7.0.2/include
> -c ../../src/osi/os/WIN32/epicsTempFile.cpp
> epicsTempFile.cpp
> c1xx: fatal error C1083: Cannot open source file:
> '../../src/osi/os/WIN32/epicsTempFile.cpp': No such file or directory
>
> Following the error, I identify the compiler as follows:
>
> C:\epics\base-7.0.2>cl
> Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27027.1 for x64
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> My startup script has the following:
> rem Set the environment for Microsoft Visual Studio
> call "C:\Program Files (x86)\Microsoft Visual
> Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
>
> In other words, the startup script correctly identifies the compiler,
> but a needed file appears to be missing (??)
I don't know msys2 at all, but the /c/ paths shown above aren't
compatible with the paths that the Visual Studio compiler is looking
for, it wants C:\ or C:/ paths. Here's the equivalent command line when
I build that same file, note the paths in the later -I options:
> cl -EHsc -GR -nologo -FC -D__STDC__=0
> -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Ox -GL
> -Oy- -W3 -w44355 -w44344 -w44251
> -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
> -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -MD -DEPICS_BUILD_DLL
> -DEPICS_CALL_DLL -TP -I. -I../O.Common -I.
> -I../../src/osi/compiler/msvc -I../../src/osi/compiler/default -I.
> -I../../src/osi/os/WIN32 -I../../src/osi/os/default -I..
> -I../../src/as -I../../src/bucketLib -I../../src/calc
> -I../../src/cvtFast -I../../src/cppStd -I../../src/cxxTemplates
> -I../../src/dbmf -I../../src/ellLib -I../../src/env -I../../src/error
> -I../../src/fdmgr -I../../src/flex -I../../src/freeList
> -I../../src/gpHash -I../../src/iocsh -I../../src/log
> -I../../src/macLib -I../../src/misc -I../../src/osi -I../../src/pool
> -I../../src/ring -I../../src/taskwd -I../../src/timer -I../../src/yacc
> -I../../src/yacc -I../../src/yajl
> -IC:/epics/base-7.0/include/compiler/msvc
> -IC:/epics/base-7.0/include/os/WIN32 -IC:/epics/base-7.0/include
> -IC:/epics/base-7.0/include/compiler/msvc
> -IC:/epics/base-7.0/include/os/WIN32
> -IC:/epics/base-7.0/include -c
> ../../src/osi/os/WIN32/epicsTempFile.cpp
My guess is that the msys2 version of Perl uses /c/ paths, which just
aren't going to work with the VS compiler. We use Perl in the build
system to generate the include paths shown above.
The easiest way to build EPICS on Windows is to install a recent version
of Strawberry Perl and use the gmake that it provides (make sure you
remove the msys2 tools completely from your PATH). You can still use the
Visual Studio compiler with it to build for windows-x64, or you can set
EPICS_HOST_ARCH to windows-x64-mingw and use the gcc that comes with
Perl instead.
HTH,
- Andrew
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon
- References:
- EPICS Base compile failure on Windows-x64 Carl Willis via Tech-talk
- Navigate by Date:
- Prev:
Re: Can I configure CA Gateway to ignore boardcast Ralph Lange via Tech-talk
- Next:
quadEM Positions XY Luka Debenjak via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: EPICS Base compile failure on Windows-x64 Mark Rivers via Tech-talk
- Next:
Can I configure CA Gateway to ignore boardcast Phillip A. Sorensen via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
|