1

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;
}

MI にヘッダファイルがありませんか?

4

4 に答える 4

2

#define JSON_LIBRARYで無効にする必要がありますJSONOptions.h。そうしないと、libjson に C++ ヘッダーが含まれません。

于 2012-11-20T10:50:49.517 に答える
1

libjsonのものがjson名前空間で定義されていることがわかります。問題を解決するjson::前に追加してみてください。JSONNodeこのような:

json::JSONNode n(JSON_NODE);
json::JSONNode c(JSON_ARRAY);
于 2012-08-20T12:04:18.990 に答える
0

最初に libJson ライブラリをビルドする必要があります。

私は次のスレッドに従いましたが、あなたが抱えているのと同じ問題を抱えた後、私にとってはうまくいきました:

Make ファイルを実行する場合: http://stackoverflow.com/a/11865407/1399434e

于 2013-06-21T18:28:26.683 に答える
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;
}
于 2013-11-21T15:16:31.887 に答える