我刚从sourceforge.net安装了libjson。我尝试执行一个简单的程序但是我得到了这个错误
‘JSONNode’ was not declared in this scope
这是代码
#include<iostream>
#include <libjson.h>
int main()
{
JSONNode n(JSON_NODE);
JSONNode c(JSON_ARRAY);
c.push_back(JSONNode("", 16));
c.push_back(JSONNode("", 43));
c.push_back(JSONNode("", 69));
n.push_back(c);
std::string jc = n.write_formatted();
std::cout<<jc<<std::endl;
return 0;
}
我错过了一些头文件?
答案 0 :(得分:2)
您需要在#define JSON_LIBRARY
中禁用JSONOptions.h
,否则libjson将不包含C ++标头。
答案 1 :(得分:1)
我看到libjson的东西是在json
命名空间中定义的。请尝试在json::
前添加JSONNode
解决问题?像这样:
json::JSONNode n(JSON_NODE);
json::JSONNode c(JSON_ARRAY);
答案 2 :(得分:0)
您必须首先确保构建libJson库。
我遵循了以下主题,在遇到同样的问题后,它对我很有帮助:
用于运行Make文件:
http://stackoverflow.com/a/11865407/1399434e
答案 3 :(得分:0)
在JSONOptions.h中禁用JSON_LIBRARY
//#define JSON_LIBRARY
然后再次编译如下
#include "libjson.h"
using namespace libjson;
int main(int argc, char* argv[])
{
JSONNode* pNode = NULL;
return 0;
}