我有 3 个无法摆脱的链接错误。
我在类的头文件中定义了一些自己的用户定义类型的静态公共类常量。接下来我在 cpp 文件中声明并初始化了类常量。我可以在类本身中使用这些常量。但是,当我尝试在另一个项目中使用常量时,出现链接错误:
error LNK2001: unresolved external symbol "public: static class EFString const CEFMldEreignis::s_typeMelderSteuern"
我不知道这里有什么问题。有人出主意吗?
提前谢谢了!
头文件:
class LIB_EXPORT CEFMldEreignis : public CBusinessObjekt
{
...
public:
static const EFString s_typeMelderSteuern;
...
};
.cpp 文件:
#include "EFMldEreignis.h"
const EFString CEFMldEreignis::s_typeMelderSteuern = _T("S");
我们使用的是 Visual Studio 2008。定义常量的项目作为引用添加到另一个项目的公共属性中,以及C++ 属性中的附加包含目录。
在另一个第三个项目中,我们实际上也声明了一些静态类常量,这些常量在使用它们时不会出现链接错误。
链接器命令行(所有选项):
(备注:EuroAllgemeineMasken 是使用常量的“其他”项目;EuroMelder 是定义和声明常量的项目。)
/OUT:"C:\Eldis3\trunk\ELDIS\Workspace\..\Debug\EuroAllgemeineMasken.dll" /INCREMENTAL
/NOLOGO /LIBPATH:"C:\Eldis3\trunk\ELDIS\Workspace\..\Debug"
/LIBPATH:"C:\Eldis3\trunk\ELDIS\Workspace\\..\..\Lib\External\SST"
/LIBPATH:"C:\Eldis3\trunk\ELDIS\Workspace\\..\..\Lib\External\ELDIS" /DLL /MANIFEST
/MANIFESTFILE:"Debug\EuroAllgemeineMasken.dll.intermediate.manifest"
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /
PDB:"C:\Eldis3\trunk\ELDIS\Workspace\..\Debug\EuroAllgemeineMasken.pdb"
/SUBSYSTEM:WINDOWS /DYNAMICBASE:NO
/IMPLIB:"C:\Eldis3\trunk\ELDIS\Workspace\..\Debug\EuroAllgemeineMasken.lib" /MACHINE:X86
/ERRORREPORT:PROMPT ..\..\ELDIS\Debug\CEDVToolsEldis.lib ..\..\ELDIS\Debug\EuroTetra.lib
..\..\ELDIS\Debug\Services.lib ..\..\ELDIS\Debug\ServiceManager.lib
..\..\ELDIS\Debug\CESocketUDP.lib ..\..\ELDIS\Debug\EuroLWZ.lib
..\..\ELDIS\Debug\EuroRouting.lib ..\..\ELDIS\Debug\MassnahmeTools.lib
..\..\ELDIS\Debug\EuroDispo.lib ..\..\ELDIS\Debug\EuroMass.lib
..\..\ELDIS\Debug\BCGControlBar.lib ..\..\ELDIS\Debug\EuroFlug.lib
..\..\ELDIS\Debug\EuroMFCTools.lib ..\..\ELDIS\Debug\EuroLog.lib
..\..\ELDIS\Debug\EuroGis.lib ..\..\ELDIS\Debug\EuroDialoge.lib
..\..\ELDIS\Debug\CECrystalReport.lib ..\..\ELDIS\Debug\EuroInfo.lib
..\..\ELDIS\Debug\EuroIO.lib ..\..\ELDIS\Debug\EuroPers.lib
..\..\ELDIS\Debug\EuroStatus.lib ..\..\ELDIS\Debug\CELTextEldis.lib
..\..\ELDIS\Debug\EuroBers.lib ..\..\ELDIS\Debug\EuroMelder.lib
..\..\ELDIS\Debug\EuroLeit.lib ..\..\ELDIS\Debug\LOVDialog.lib
..\..\ELDIS\Debug\EuroFunk.lib ..\..\ELDIS\Debug\EuroEsta.lib
..\..\ELDIS\Debug\EuroOrt.lib ..\..\ELDIS\Debug\EuroEinsatz.lib
..\..\ELDIS\Debug\Gms.lib ..\..\ELDIS\Debug\GMTs.lib ..\..\ELDIS\Debug\EuroAdmin.lib
..\..\ELDIS\Debug\EuroOber.lib ..\..\ELDIS\Debug\EFBusiness.lib
..\..\ELDIS\Debug\EuroTools.lib ..\..\ELDIS\Debug\DBAccess.lib
..\..\ELDIS\Debug\DynamicWindows.lib