EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Problems/questions with R3.14.2 example on win32-x86
From: "Mark Rivers" <[email protected]>
To: <[email protected]>
Date: Thu, 7 Aug 2003 15:28:14 -0500
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  <20032004  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  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024