EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  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  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Problem building shareable libraries on win32-x86
From: "Ernest L. Williams Jr." <[email protected]>
To: Mark Rivers <[email protected]>
Cc: [email protected], [email protected], [email protected]
Date: Sat, 21 Apr 2007 07:22:23 -0700
On Fri, 2007-04-20 at 18:56 -0500, Mark Rivers wrote:
> Janet and all,
> 
> We need to rebuild the shareable libraries ezca, EzcaScan, and ezcaIDL
> with 3.14.  This will allow IDL to read more than 16000 bytes, and
> hopefully fix the problems we were discussing yesterday with IDL at the
> Australian Synchrotron.
> 
> I have built EPICS base (3.14.8.2) for win32-x86 using
> SHARED_LIBRARIES=NO and STATIC_BUILD=YES.  This allows me to make
> statically built IOC applications that I can put on computers that don't
> have access to all the DLLs from base, etc.

Since, I am using Visual Studio 2005.  I also have to specify:
LINK_OPT_FLAGS_YES += /MANIFEST in my Makefiles.

What version of MS the compiler are you using?



> 
> Now I want to build the extensions DLLs using SHARED_LIBRARIES=YES so I
> make shareable DLLs.  I set SHARED_LIBRARIES=YES in
> extensions/configure/CONFIG_SITE.  When I try to build, I get the
> following error:

You also have to set STATIC_BUILD=NO in extensions/configure/CONFIG_SITE

As a matter of fact, I would set these in EPICS_BASE when building:
$EPICS_BASE/configure/CONFIG_SITE



> 
> link /nologo /subsystem:windows /dll /LTCG /incremental:no /opt:ref
> /release     
>      /implib:ezca.lib /out:ezca.dll /def:../
>      ezca.def  ezca.obj  H:/epics/base/lib/win32-x86/ca.lib
> H:/epics/base/lib/win32-x86/Com.lib
> 
> Creating library ezca.lib and object ezca.exp
> ca.lib(ca_client_context.obj) : error LNK2001: unresolved external
> symbol __imp__bind@12
> ca.lib(ca_client_context.obj) : error LNK2001: unresolved external
> symbol __imp__sendto@24
> ca.lib(ca_client_context.obj) : error LNK2001: unresolved external
> symbol __imp__getsockname@12
> ca.lib(ca_client_context.obj) : error LNK2001: unresolved external
> symbol __imp__recvfrom@24
> ca.lib(ca_client_context.obj) : error LNK2001: unresolved external
> symbol __imp__ioctlsocket@12
> ca.lib(udpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__setsockopt@20
> ca.lib(udpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__WSAGetLastError@0
> ca.lib(udpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__htonl@4
> ca.lib(tcpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__getsockopt@20
> ca.lib(tcpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__send@16
> ca.lib(tcpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__recv@16
> ca.lib(tcpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__shutdown@8
> ca.lib(tcpiiu.obj) : error LNK2001: unresolved external symbol
> __imp__connect@12
> ca.lib(localHostName.obj) : error LNK2001: unresolved external symbol
> __imp__gethostname@8
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__accept@12
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__gethostbyname@4
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__gethostbyaddr@12
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__closesocket@4
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__socket@12
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__WSACleanup@0
> Com.lib(osdSock.obj) : error LNK2001: unresolved external symbol
> __imp__WSAStartup@8
> Com.lib(osiSock.obj) : error LNK2001: unresolved external symbol
> __imp__ntohs@4
> Com.lib(osiSock.obj) : error LNK2001: unresolved external symbol
> __imp__ntohl@4
> Com.lib(osdProcess.obj) : error LNK2001: unresolved external symbol
> __imp__MessageBoxA@16
> Com.lib(osdProcess.obj) : error LNK2001: unresolved external symbol
> __imp__GetUserNameA@8
> Com.lib(osdNetIntf.obj) : error LNK2001: unresolved external symbol
> __imp__WSAIoctl@36
> Com.lib(aToIPAddr.obj) : error LNK2001: unresolved external symbol
> __imp__htons@4
> ezca.dll : fatal error LNK1120: 27 unresolved externals
> make[1]: *** [ezca.dll] Error 96
> make[1]: Leaving directory
> `/cygdrive/h/epics/extensions_devel/src/ezca/O.win32-x86'
> make: *** [install.win32-x86] Error 2
> 
> The guts of the Makefile is:
> INC += ezca.h
> LIBRARY_HOST = ezca
> ezca_SRCS = ezca.c
> ezca_LIBS += ca Com
> 
> I find that I can eliminate the errors if I add the following line.  But
> should this be necessary, or is there a better way to do it?
> 
> ezca_SYS_LIBS_WIN32 = ws2_32 advapi32 user32
> 
> Thanks,
> Mark


References:
Problem building shareable libraries on win32-x86 Mark Rivers

Navigate by Date:
Prev: RE: Strange channel access problem Mark Rivers
Next: Re: wxPython timer and KEK CaPython314 cause core dump Noboru Yamamoto
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Problem building shareable libraries on win32-x86 Mark Rivers
Next: Re: wxPython timer and KEK CaPython314 cause core dump Noboru Yamamoto
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·