2016-08-19 17 views
1

私は、次のコードを実行すると:私は読むためにプログラムを記述しようとしています未定義参照JSON ::値とJSON ::リーダー

undefined reference to `Json::Reader::Reader()' 
undefined reference to `Json::Value::Value(Json::ValueType)' 

#include <cstdio> 
#include <iostream> 
#include <fstream> 
#include <cstring> 
#include <C:\Users\User\Documents\jsoncpp-master\dist\json\json.h> 
#include <C:\Users\User\Documents\jsoncpp-master\dist\json\json-forwards.h> 

using namespace std; 

int main(){ 
    Json::Value root; 
    Json::Reader reader; 

    ifstream file("test.json"); 

    return 0; 
} 

は、私は次のエラーを取得しますJSONファイルとこのコードは、別のC++モジュールで使用されるJSONファイルにデータを出力する必要があります。

私は完全なリンクを削除するには、コードを変更して、私は走った後に私が得たdistのフォルダに挿入されている

#include <cstdio> 
#include <iostream> 
#include <fstream> 
#include <cstring> 
#include "dist\jsoncpp.cpp" 
using namespace std; 

int main(){ 

    Json::Value root; 
    Json::Reader reader; 

    ifstream file("test.json"); 

    return 0; 
} 

UPDATE:

python amalgamate.py 

そして、私はCにヘッダファイルに入りました: \ MinGW \ include

私は今、jsoncpp.cppファイル(これはPythonコマンドを実行した後に得たファイルであり、まったく変更していません)で多くのエラーが発生しています。

first defined here 
+0

「Json」クラスはどこに定義されていますか? – MicroCheapFx

+0

**リンカ**エラー。あなたはjsoncppライブラリにリンクしなければなりません。 – Jarod42

+1

[OT]:インクルードにフルパスを使用しないでください。ビルドシステムに対して、ヘッダを見つけるための追加ディレクトリを指定します。 – Jarod42

答えて

1

それはちょうどあなたのソースコードにHファイルをインクルードするのに十分ではありません。ある同じメッセージを、言う すべてのエラー。 プロジェクトでjsoncpp.cppをコンパイルする必要があります。 https://github.com/open-source-parsers/jsoncpp#generating-amalgamated-source-and-header に従い、jsoncpp.cpp、json/json.h、json/forwards.hをプロジェクトに追加してください。

+0

リンクに感謝します。指示通りにしましたが、アップデートで示されている別のエラーが表示されています – user9492428

+0

@ user949:指示通りにしませんでした。なぜあなたは '.cpp'ファイルを#含んでいますか? –

+0

@LightnessRacesinOrbit命令の中でプロジェクトに追加する必要がある 'dist \ jsoncpp.cpp'ソースファイルがあります – user9492428