Xerces Link error with Visual Studio 2008



我正在尝试使用 Xerces 编写代码,构建工作正常,但是当涉及到链接时,它失败并出现以下错误:

我正在使用Visual Studio 2008 Win32/with xerces 3 (xerces-c_3.lib)/使用多线程DLL (/MD),我检查"将wchar_t视为内置类型"设置为是.....

你知道我的错误可能在哪里吗?

3>Linking...
3>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
3>signatureinserter.lib(schemeSignatureInserter.obj) : error LNK2001: unresolved external symbol "public: static char * __cdecl xercesc_3_1::XMLString::transcode(unsigned short const * const,class xercesc_3_1::MemoryManager * const)" (?transcode@XMLString@xercesc_3_1@@SAPADQBGQAVMemoryManager@2@@Z)
3>signatureinserter.lib(schemeSignatureInserter.obj) : error LNK2001: unresolved external symbol "public: static char const * const xercesc_3_1::XMLUni::fgXercescDefaultLocale" (?fgXercescDefaultLocale@XMLUni@xercesc_3_1@@2QBDB)
3>signatureinserter.lib(schemeSignatureInserter.obj) : error LNK2001: unresolved external symbol "public: static class xercesc_3_1::MemoryManager * xercesc_3_1::XMLPlatformUtils::fgMemoryManager" (?fgMemoryManager@XMLPlatformUtils@xercesc_3_1@@2PAVMemoryManager@2@A)
fatal error LNK1120: 3 unresolved externals

这是一个非常古老的线程,但我遇到了同样的问题。

解决方案是确保包含特定于平台的代码:

#include <xercesc/util/PlatformUtils.hpp>

至少对于当前版本的库 xerces-c-3.1.4,这是定义这些静态成员的地方。

(不确定转码方法,可能在以前的版本中也包含在那里?!在我的情况下,我没有问题)

最新更新