Subject: |
RE: Visual Studio 2010 problem and solution |
From: |
Mark Rivers <[email protected]> |
To: |
"'EPICS Tech Talk'" <[email protected]> |
Date: |
Fri, 13 Jun 2014 17:36:57 +0000 |
Folks,
Unfortunately I now have another problem, which is very strange.
On May 27 installed VS2010 SP1 and was able to build everything on windows-x64-dynamic.
Today, without changing EPICS base or doing any explicit changes to Visual Studio I have a new problem.
When building ca.dll in base/src/ca I get the following errors:
***********************************************************************************
H:\epics\base\src\ca>make
make -C O.windows-x64-dynamic -f ../Makefile TOP=../../.. T_A=windows-x64-dynamic install
make[1]: Entering directory `H:/epics/base/src/ca/O.windows-x64-dynamic'
link /nologo /subsystem:windows /dll /LTCG /incremental:no /opt:ref /release /version:3.14 /MACHINE:X64 /implib:ca.lib /out:ca.dll cac.obj cacChannel.obj cacChannelNo
tify.obj cacContextNotify.obj cacReadNotify.obj cacWriteNotify.obj cacStateNotify.obj access.obj iocinf.obj convert.obj test_event.obj repeater.obj searchTimer.obj disconnectGovern
orTimer.obj repeaterSubscribeTimer.obj baseNMIU.obj nciu.obj netiiu.obj udpiiu.obj tcpiiu.obj noopiiu.obj netReadNotifyIO.obj netWriteNotifyIO.obj netSubscription.obj tcpSendWatchd
og.obj tcpRecvWatchdog.obj bhe.obj ca_client_context.obj oldChannelNotify.obj oldSubscription.obj getCallback.obj getCopy.obj putCallback.obj syncgrp.obj CASG.obj syncGroupNotify.o
bj syncGroupReadNotify.obj syncGroupWriteNotify.obj localHostName.obj comQueRecv.obj comQueSend.obj comBuf.obj hostNameCache.obj msgForMultiplyDefinedPV.obj ca.res ..\\..\\..\\lib\\windows-x64-dynamic\\Com.lib ws2_32.lib advapi32.lib user32.lib
Creating library ca.lib and object ca.exp
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_SERVER_PORT
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_NAME_SERVERS
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_MAX_ARRAY_BYTES
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_CONN_TMO
iocinf.obj : error LNK2001: unresolved external symbol EPICS_CA_AUTO_ADDR_LIST
iocinf.obj : error LNK2001: unresolved external symbol EPICS_CA_ADDR_LIST
repeater.obj : error LNK2001: unresolved external symbol EPICS_CA_REPEATER_PORT
udpiiu.obj : error LNK2001: unresolved external symbol EPICS_CA_MAX_SEARCH_PERIOD
ca.dll : fatal error LNK1120: 8 unresolved externals
make[1]: *** [ca.dll] Error 1120
make[1]: Leaving directory `H:/epics/base/src/ca/O.windows-x64-dynamic'
make: *** [install.windows-x64-dynamic] Error 2
***********************************************************************************
So it cannot find EPICS_CA_MAX_ARRAY_BYTES, etc. But if I run "dumpbin /exports" on Com.lib they are defined, and Com.lib is being linked with:
***********************************************************************************
H:\epics\base\src\ca>dumpbin /exports ..\..\lib\windows-x64-dynamic\Com.lib
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file ..\..\lib\windows-x64-dynamic\Com.lib
File Type: LIBRARY
Exports
ordinal name
??0SingletonUntyped@@QEAA@XZ (public: __cdecl SingletonUntyped::SingletonUntyped(void))
??0epicsDeadlockDetectMutex@@QEAA@I@Z (public: __cdecl epicsDeadlockDetectMutex::epicsDeadlockDetectMutex(unsigned int))
...
EPICS_AR_PORT
EPICS_CAS_AUTO_BEACON_ADDR_LIST
EPICS_CAS_BEACON_ADDR_LIST
EPICS_CAS_BEACON_PERIOD
EPICS_CAS_BEACON_PORT
EPICS_CAS_IGNORE_ADDR_LIST
EPICS_CAS_INTF_ADDR_LIST
EPICS_CAS_SERVER_PORT
EPICS_CA_ADDR_LIST
EPICS_CA_AUTO_ADDR_LIST
EPICS_CA_BEACON_PERIOD
EPICS_CA_CONN_TMO
EPICS_CA_MAX_ARRAY_BYTES
EPICS_CA_MAX_SEARCH_PERIOD
EPICS_CA_NAME_SERVERS
EPICS_CA_REPEATER_PORT
EPICS_CA_SERVER_PORT
EPICS_CMD_PROTO_PORT
EPICS_IOC_LOG_FILE_COMMAND
EPICS_IOC_LOG_FILE_LIMIT
EPICS_IOC_LOG_FILE_NAME
EPICS_IOC_LOG_INET
EPICS_IOC_LOG_PORT
EPICS_TIMEZONE
EPICS_TS_NTP_INET
IOCSH_HISTSIZE
***********************************************************************************
Building base works fine when building statically on 32 and 64-bit. It fails when building dynamically on 32 and 64-bit. As I said I built successfully on 64-bit on May 27, and have done nothing since then.
The only thing I can think of is that Windows Updates ran on May 28 and did security updates to VS2010 SP1.
Has anyone else seen a similar problem?
Any ideas?
Thanks,
Mark
-----Original Message-----
From: Mark Rivers
Sent: Wednesday, May 28, 2014 10:08 AM
To: EPICS Tech Talk
Subject: Visual Studio 2010 problem and solution
Folks,
We recently installed some Windows Updates on our machines, and found that Visual Studio 2010 then failed to build DLLs when building EPICS base, for example:
> Creating library Com.lib and object Com.exp
> Generating code
> Finished generating code
> LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
Andrew Johnson found a Web page discussing this problem, which contained the solution.
The solution is to install Visual Studio 2010 SP1. I am not sure exactly which Windows Update caused the problem, but it may be an update to .NET.
I'm posting this to save others needing to rediscover the solution.
Mark
- Replies:
- RE: Visual Studio 2010 problem and solution Mark Rivers
- References:
- Visual Studio 2010 problem and solution Mark Rivers
- Navigate by Date:
- Prev:
RE: Compiling helloWorld of EPICS V4 on 64bit linux had a link error [SEC=UNOFFICIAL] david.hickin
- Next:
Re: sequencer installation Vikram Bhagat
- 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:
RE: Visual Studio 2010 problem and solution Heesterman, Peter J
- Next:
RE: Visual Studio 2010 problem and solution Mark Rivers
- 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
|