EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20192020  2021  2022  2023  2024  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  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Base compile failure on Windows-x64
From: "Johnson, Andrew N. via Tech-talk" <[email protected]>
To: Carl Willis <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 25 Feb 2019 17:38:49 +0000
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  <20192020  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  <20192020  2021  2022  2023  2024 
ANJ, 26 Feb 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·