Experimental Physics and Industrial Control System
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
<2007>
2008
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
<2007>
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024