我正在尝试让第 3 方库来处理我的代码。我有库的源代码,并且已经验证了构建选项与我自己的构建选项相匹配,但我还没有通过所有的源代码来了解它在做什么。
我的代码调用了Value m_jsonValRoot;
给我以下链接错误的行:
Linking...
1>JsonWrapper.obj : error LNK2019: unresolved external symbol "public: __cdecl Json::Value::~Value(void)" (??1Value@Json@@QAA@XZ) referenced in function "public: class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsOS<wchar_t> > > __cdecl Json::CJsonWrapper::RunTest(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsOS<wchar_t> > >)" (?RunTest@CJsonWrapper@Json@@QAA?AV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsOS@_W@ATL@@@@@ATL@@V34@@Z)
1>JsonWrapper.obj : error LNK2019: unresolved external symbol "public: __cdecl Json::Value::Value(int)" (??0Value@Json@@QAA@H@Z) referenced in function "public: class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsOS<wchar_t> > > __cdecl Json::CJsonWrapper::RunTest(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsOS<wchar_t> > >)" (?RunTest@CJsonWrapper@Json@@QAA?AV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsOS@_W@ATL@@@@@ATL@@V34@@Z)
1>Windows Mobile 6.5.3 Standard DTK (ARMV4I)\Debug\CCRDEX_UI.exe : fatal error LNK1120: 2 unresolved externals
我在 .lib 文件上运行了 dumpbin,我发现我的函数被定义为:
SECTION HEADER #C7
.text name
0 physical address
0 virtual address
194 size of raw data
22345 file pointer to raw data (00022345 to 000224D8)
224D9 file pointer to relocation table
0 file pointer to line numbers
12 number of relocations
0 number of line numbers
60501020 flags
Code
COMDAT; sym= "public: __thiscall Json::Value::Value(enum Json::ValueType)" (??0Value@Json@@QAE@W4ValueType@1@@Z)
16 byte align
Execute Read
我试图通过将头文件中的方法声明从: 更改为来解决这个问题Value( ValueType type = nullValue );
,__thiscall Value( ValueType type = nullValue );
但这对链接器没有影响。
我正在使用 unicode 在共享 DLL 中使用 MFC 在 Visual Studio 2008 中构建一个项目,并且正在为 Windows Mobile 6.5.3 构建一个项目
我可以采取哪些步骤来解决链接问题?