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  <20142015  2016  2017  2018  2019  2020  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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Building Base on win64...
From: Mark Rivers <[email protected]>
To: "'David Reid'" <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 8 Apr 2014 19:28:37 +0000

Dave,

 

This could have to do with your Visual Studio settings.  It could be that everything in EPICS base was built for 64-bit, but you are linking with some 32-bit Windows DLLs because you don’t have Visual Studio set up correctly for the 64-bit build build.

 

Here is how I do it on my Windows machine when I want to build for both 32-bit and 64-bit on the same machine.

 

I have 2 shortcuts on the desktop, one for 32-bit and one for 64-bit.

 

The Properties/Shortcut/Target of the 32-bit shortcut is:

 

C:\Windows\System32\cmd.exe /K C:\EPICS\setup_epics_vs2010_win32.bat

 

The Properties/Shortcut/Target of the 64-bit shortcut is:

 

C:\Windows\System32\cmd.exe /K C:\EPICS\setup_epics_vs2010_win64.bat

 

This is the contents of the 32-bit batch file, C:\EPICS\setup_epics_vs2010_win32.bat:

 

set EPICS_HOST_ARCH=win32-x86

set PATH=C:\Program Files (x86)\GnuWin32\bin;C:\Program Files (x86)\re2c;C:\Perl64\bin;H:\epics\base\bin\win32-x86;%PATH%

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86

 

 

This is the contents of the 64-bit batch file, C:\EPICS\setup_epics_vs2010_win64.bat:

 

set EPICS_HOST_ARCH=windows-x64

set PATH=C:\Program Files (x86)\GnuWin32\bin;C:\Program Files (x86)\re2c;C:\Perl64\bin;H:\epics\base\bin\win32-x86;%PATH%

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64

 

Note that the 32-bit and 64-bit batch files differ in the argument passed to vcvarsall.bat.  It is “x86” for 32-bit and “x86_amd64” for 64-bit.

 

Mark

 

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of David Reid
Sent: Tuesday, April 08, 2014 1:58 PM
To: [email protected]
Subject: Building Base on win64...

 

Hello…

 

I’m trying to build EPICS baseR3.14.12.4 on a windows64 machine, and I’ve run into the following issue:

 

link /nologo /subsystem:windows /dll /MANIFEST /LTCG /incremental:no /opt:ref /r

elease /version:3.14 /MACHINE:X64     /implib:Com.lib /out:Com.dll          buck

etLib.obj epicsRingPointer.obj epicsRingBytes.obj postfix.obj calcPerform.obj cv

tFast.obj resourceLib.obj epicsOnce.obj epicsSingletonMutex.obj dbmf.obj ellLib.

obj envSubr.obj envData.obj errlog.obj errSymLib.obj errSymTbl.obj fdmgr.obj fdM

anager.obj freeListLib.obj gpHashLib.obj iocsh.obj registry.obj libComRegister.o

bj iocLog.obj logClient.obj macCore.obj macEnv.obj macUtil.obj aToIPAddr.obj adj

ustment.obj cantProceed.obj epicsConvert.obj epicsExit.obj epicsStdlib.obj epics

String.obj truncateFile.obj ipAddrToAsciiAsynchronous.obj epicsUnitTest.obj epic

sThread.obj epicsMutex.obj epicsEvent.obj epicsTime.obj epicsMessageQueue.obj ep

icsMath.obj epicsGeneralTime.obj osiClockTime.obj osdSock.obj osdSockAddrReuse.o

bj osiSock.obj systemCallIntMech.obj epicsSocketConvertErrnoToString.obj osdAsse

rt.obj osdFindSymbol.obj osdInterrupt.obj osdPoolStatus.obj osdSignal.obj osdEnv

.obj epicsReadline.obj epicsTempFile.obj epicsStdio.obj osdStdio.obj osdThread.o

bj osdMutex.obj osdEvent.obj osdTime.obj osdProcess.obj osdNetIntf.obj osdMessag

eQueue.obj devLibVME.obj devLibVMEOSD.obj taskwd.obj epicsTimer.obj timer.obj ti

merQueue.obj timerQueueActive.obj timerQueueActiveMgr.obj timerQueuePassive.obj

tsDefs.obj epicsGetopt.obj setThreadName.obj forceBadAllocException.obj Com.res

    ws2_32.lib advapi32.lib user32.lib

bucketLib.obj : fatal error LNK1112: module machine type 'X86' conflicts with ta

rget machine type 'x64'

../../../configure/RULES_BUILD:291: recipe for target 'Com.dll' failed

make[3]: *** [Com.dll] Error 88

make[3]: Leaving directory '/cygdrive/c/epics/base/src/libCom/O.windows-x64'

../../configure/RULES_ARCHS:63: recipe for target 'install.windows-x64' failed

make[2]: *** [install.windows-x64] Error 2

make[2]: Leaving directory '/cygdrive/c/epics/base/src/libCom'

../configure/RULES_DIRS:70: recipe for target 'libCom.install' failed

make[1]: *** [libCom.install] Error 2

make[1]: Leaving directory '/cygdrive/c/epics/base/src'

configure/RULES_DIRS:70: recipe for target 'src.install' failed

make: *** [src.install] Error 2

 

I have EPICS_HOST_ARCH set to windows-x64.

 

Any thoughts on what I may be doing wrong?  Thanks…

 

Dave

 

David Reid
Software Engineer, Behavior

Description: C:\AllenInstitute_Email_signature_html_6e825420.png

www.alleninstitute.org

 


References:
Building Base on win64... David Reid

Navigate by Date:
Prev: Re: Building Base on win64... Andrew Johnson
Next: How to stop acquire in DblCorrelation Mode for MarCCD in AreaDetector module =?gb18030?b?1tzGvQ==?=
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Building Base on win64... Andrew Johnson
Next: How to stop acquire in DblCorrelation Mode for MarCCD in AreaDetector module =?gb18030?b?1tzGvQ==?=
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·