3

我正在尝试使用 jsoncpp 的合并版本(最新版本),但它会产生未解决的外部符号链接错误。我正在使用的代码是

#include <json/json.h>

int main(){
   Json::Value root;
   return 0;
}

它给了我错误

1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Json::Value::~Value(void)" (??1Value@Json@@QAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Json::Value::Value(enum Json::ValueType)" (??0Value@Json@@QAE@W4ValueType@1@@Z) referenced in function _main
4

2 回答 2

5

可能您没有将 JSONCPPs *.cpp 文件包含到您的项目中(它们必须被编译和链接)。如果库被编译为静态库,您必须告诉链接器要链接什么。

于 2011-10-03T06:01:42.803 回答
0

当我尝试在我的 x64 构建中链接 x86 版本的 JsonCpp 时,我得到了这个。我没有注意到 Vcpkg 的行为就像VCPKG_DEFAULT_TRIPLET=x86-windows被定义一样,除非另有说明。

发生这种情况时,我在构建日志中看到了以下条目

C:\Tools\vcpkg\installed\x86-windows\debug\lib\jsoncpp.lib:警告 LNK4272:库机器类型 'x86' 与目标机器类型 'x64' 冲突 [C:\projects\qpid-proton\BLD\ cpp\qpid-质子-cpp.vcxproj]

于 2019-10-25T07:20:38.737 回答