使用 jsoncpp NuGet 包时获取未解析的外部符号
Getting an unresolved external symbol when using jsoncpp NuGet package
我有一段简单的代码,我使用 jsoncpp 版本 0.6.0.1 NuGet 包从 VS2013 中的 json 文件中读取。
#include <iostream>
#include <fstream>
#include "json\json.h"
using namespace std;
Json::Value readJson(){
Json::Value root;
ifstream rootfile("restore.json");
rootfile >> root;
return root;
}
void main(){
Json::Value root = readJson();
cout << "Hello" << endl;
system("pause");
}
我一直收到错误 Error 1 error LNK2019: unresolved external symbol "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl Json::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Json::Value &)" (??5Json@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV12@AAVValue@0@@Z) referenced in function "class Json::Value __cdecl readJson(void)" (?readJson@@YA?AVValue@Json@@XZ)
问题出在 operator>>
。所以我取消注释 rootfile >> root
并且错误消失了。但我不明白为什么那条线是个问题。我添加了 jsoncpp.lib 及其链接器的路径。我不确定我现在缺少什么部分。
问题是 jsoncpp 版本 0.6.0.1 在 reader 文件中没有 Json::operator>>
函数,因此我得到了上述错误。我用以下代码替换了 rootfile >> root
,这解决了我的问题。
Json::Reader reader;
bool ok = reader.parse(rootfile, root, true);
我有一段简单的代码,我使用 jsoncpp 版本 0.6.0.1 NuGet 包从 VS2013 中的 json 文件中读取。
#include <iostream>
#include <fstream>
#include "json\json.h"
using namespace std;
Json::Value readJson(){
Json::Value root;
ifstream rootfile("restore.json");
rootfile >> root;
return root;
}
void main(){
Json::Value root = readJson();
cout << "Hello" << endl;
system("pause");
}
我一直收到错误 Error 1 error LNK2019: unresolved external symbol "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl Json::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Json::Value &)" (??5Json@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV12@AAVValue@0@@Z) referenced in function "class Json::Value __cdecl readJson(void)" (?readJson@@YA?AVValue@Json@@XZ)
问题出在 operator>>
。所以我取消注释 rootfile >> root
并且错误消失了。但我不明白为什么那条线是个问题。我添加了 jsoncpp.lib 及其链接器的路径。我不确定我现在缺少什么部分。
问题是 jsoncpp 版本 0.6.0.1 在 reader 文件中没有 Json::operator>>
函数,因此我得到了上述错误。我用以下代码替换了 rootfile >> root
,这解决了我的问题。
Json::Reader reader;
bool ok = reader.parse(rootfile, root, true);