Ron,
One possible source of the problem is that pdbbase should really be
defined as follows, as it is done in db_convert.h:
epicsShareExtern struct dbBase *pdbbase;
However, motorUtilAux.cpp defines it as follows:
extern "C" {
extern struct dbBase *pdbbase;
}
I would make that change and see if it fixes your problem. Looking
through shareLib.h it looks to me like this could well be the problem,
and that I am not seeing it because I am compiling and linking
staticially, i.e. without DLLs.
Mark
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Ron Sluiter
Sent: Monday, June 23, 2008 4:34 PM
To: EPICS
Subject: Visual C++ link errors
Anybody got a clue as to why this doesn't link.
Specs: Visual Studio 6.0 and 7.0, base-3.14.8.2, motorR6-2-2
link /nologo /subsystem:windows /dll /incremental:no /opt:ref /release
/implib:motor.lib /out:motor.dll motorRecord.obj motordevCom.obj
motordrvCom.obj paramLib.obj motorUtil.obj motorUtilAux.obj
c:/epics/base-3.14.8.2/lib/win32-x86/recIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/softDevIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/iocsh.lib
c:/epics/base-3.14.8.2/lib/win32-x86/miscIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/rsrvIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/dbtoolsIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/asIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/dbIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/registryIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/dbStaticIoc.lib
c:/epics/base-3.14.8.2/lib/win32-x86/ca.lib
c:/epics/base-3.14.8.2/lib/win32-x86/Com.lib
Creating library motor.lib and object motor.exp
motorUtilAux.obj : error LNK2019: unresolved external symbol _pdbbase
referenced in function "char * * __cdecl getMotorList(void)"
(?getMotorList@@YAPAPADXZ)
Apparently, pdbbase is not in dbIoc; "nm -A dbIoc.lib | grep pdbbase"
yields no results.
Thanks in advance,
Ron