Experimental Physics and Industrial Control System
Folks,
I have built base-3.14.2 and seq-2.0.4 on win32-x86 (Windows XP, VC 6.0)
successfully. I have then built the example application that comes with
base. However, I have run into 2 problems in doing so.
1) If I build the example application dynamically (the default) then I
find that the application does not run unless all of the required dlls
are in my PATH environment variable. For example base/bin/win32-x86 and
seq/bin/win32-x86. This is not such a problem for the simple
application, but for real applications there will be over a dozen
applications that supply DLLs (mpf, std, motor, mca, etc.). It's a real
pain to have to put these in my PATH. Another problem with this is that
existing 3.13 extensions (for example ezcaIDL) require some DLLs
(ca.dll, com.dll) to be in the PATH, but the versions in the PATH now
are incompatible with the 3.14 versions, so this does not work.
Is this the correct and desired behavior? Is it possible to build
dynamically linked applications on Windows that have the paths to the
required DLLs built into the executable?
2) If I try to build the example application statically (setting
STATIC_BUILD=YES in example/configure/CONFIG then I get a fatal error in
linking:
link -nologo /incremental:no /opt:ref /release
-out:myexample.exe myexample_registerRecordDeviceDriver.obj
sncExample.obj myexampleMain.obj sncExample_sncreg.obj
J:/epics/3.14/example/lib/win32-x86/myexampleSupport.lib
h:/epics/seq-2.0.4/lib/win32-x86/seq.lib
h:/epics/seq-2.0.4/lib/win32-x86/pv.lib
h:/epics/base-3.14.2/lib/win32-x86/recIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/softDevIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/testDevIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/iocsh.lib
h:/epics/base-3.14.2/lib/win32-x86/miscIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/rsrvIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/dbtoolsIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/asIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/dbIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/registryIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/dbStaticIoc.lib
h:/epics/base-3.14.2/lib/win32-x86/ca.lib
h:/epics/base-3.14.2/lib/win32-x86/Com.lib
ws2_32.libadvapi32.lib user32.lib kernel32.lib winmm.lib
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pxxxRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pxxxRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pwaveformRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pwaveformRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _psubArrayRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _psubArrayRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _psubRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _psubRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstringoutRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstringoutRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstringinRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstringinRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstateRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pstateRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pseqRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pseqRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pselRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pselRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _ppermissiveRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _ppermissiveRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbboDirectRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbboDirectRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbboRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbboRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbbiDirectRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbbiDirectRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbbiRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmbbiRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _plongoutRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _plongoutRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _plonginRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _plonginRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pfanoutRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pfanoutRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _peventRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _peventRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdfanoutRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdfanoutRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcompressRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcompressRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcalcoutRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcalcoutRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcalcRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pcalcRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pboRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pboRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pbiRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pbiRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _paoRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _paoRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _paiRecordSizeOffset
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _paiRSET
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevXxxSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevWfTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevWfSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevSASoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevSoTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevSoSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevSiTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevSiSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbboDirectSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbboDirectSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbboTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbboSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbboSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbbiDirectSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbbiDirectSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbbiTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbbiSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevMbbiSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevLoSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevLiSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevEventTestIoEvent
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevEventSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBoTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBoSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBoSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBiTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBiSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevBiSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAoTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAoSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAoSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAiTestAsyn
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAiSoftRaw
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdevAiSoft
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pmySub
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pasSub
myexample_registerRecordDeviceDriver.obj : error LNK2001: unresolved
external symbol _pdbbase
myexample.exe : fatal error LNK1120: 89 unresolved externals
gnumake[1]: *** [myexample.exe] Error 1120
rm sncExample_sncreg.obj sncExample_sncreg.cpp
gnumake[1]: Leaving directory
`J:/epics/3.14/example/myexampleApp/src/O.win32-x86'
gnumake: *** [install.win32-x86] Error 2
I don't understand these link errors, since most of these symbols should
be defined in recIoc.obj, which is being linked with.
Here is the output of dumpbin/exports on recIoc.obj
H:\epics\base-3.14.2\lib\win32-x86>dumpbin /exports recIoc.lib
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
Dump of file recIoc.lib
File Type: LIBRARY
Exports
ordinal name
_paaiRSET
_paaiRecordSizeOffset
_paaoRSET
_paaoRecordSizeOffset
_paiRSET
_paiRecordSizeOffset
_paoRSET
_paoRecordSizeOffset
_pbiRSET
_pbiRecordSizeOffset
_pboRSET
_pboRecordSizeOffset
_pcalcRSET
_pcalcRecordSizeOffset
_pcalcoutRSET
_pcalcoutRecordSizeOffset
_pcompressRSET
_pcompressRecordSizeOffset
_pdfanoutRSET
_pdfanoutRecordSizeOffset
_pegRSET
_pegRecordSizeOffset
_pegeventRSET
_pegeventRecordSizeOffset
_perRSET
_perRecordSizeOffset
_pereventRSET
_pereventRecordSizeOffset
_peventRSET
_peventRecordSizeOffset
_pfanoutRSET
_pfanoutRecordSizeOffset
_phistogramRSET
_phistogramRecordSizeOffset
_plonginRSET
_plonginRecordSizeOffset
_plongoutRSET
_plongoutRecordSizeOffset
_pmbbiDirectRSET
_pmbbiDirectRecordSizeOffset
_pmbbiRSET
_pmbbiRecordSizeOffset
_pmbboDirectRSET
_pmbboDirectRecordSizeOffset
_pmbboRSET
_pmbboRecordSizeOffset
_ppermissiveRSET
_ppermissiveRecordSizeOffset
_pselRSET
_pselRecordSizeOffset
_pseqRSET
_pseqRecordSizeOffset
_pstateRSET
_pstateRecordSizeOffset
_pstringinRSET
_pstringinRecordSizeOffset
_pstringoutRSET
_pstringoutRecordSizeOffset
_psubArrayRSET
_psubArrayRecordSizeOffset
_psubRSET
_psubRecordSizeOffset
_pwaveformRSET
_pwaveformRecordSizeOffset
Summary
C3 .debug$S
14 .idata$2
14 .idata$3
4 .idata$4
4 .idata$5
C .idata$6
Any idea what is wrong?
Thanks,
Mark Rivers
- Navigate by Date:
- Prev:
Re: OMS motor card JOG mode problems Ronald L. Sluiter
- Next:
building caTCL zhaozhuo
- 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:
compilering the crossgcc on RedHat linux9.0 zhaozhuo
- Next:
building caTCL zhaozhuo
- 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