2011-10-28 14 views
0

私はJsonCPPをC++のJsonのパーサーとして使用していますが、問題は私のvar Json::Value root;を宣言するときです。そのコンパイルは非常にうまくコンパイルされますが、このメッセージを表示するとプログラムがクラッシュします:undefined symbol: _ZN4Json5ValueD1Ev。 私は何が欠けていますか?Linux 64でJsonCPPライブラリを使用した未定義のシンボル。何が欠けていますか?

私は私のコードでは、ライブラリのために呼び出すときに、私は#include <json/json.h>を行う/usr/include/jsonに私は/usr/lib/usr/lib64にマイライブラリlibjson_linux-gcc-4.1.2_libmt.soを置くそうですが、リンカの問題だと思った、と.H。

私はそれを非常にうまくコンパイルできるので、すべてが問題ありません!私は同じクラッシュを受け取ります。

私はリンクに欠けているパスはありますか?

ありがとうございました!

PD:私は、ヘッダファイルを含むに加えて、メイクファイル

+0

コンパイラの入出力を表示できますか? –

+0

私はg ++のtrhoughtコンソールでコンパイルします。実際には初心者でもC++で、Linuxでも同じように表示できます。S – Urien

答えて

1

してコンパイルしてる、グラム++でコンパイルしていないよと言うことを忘れて、あなたにも、ライブラリにリンクする必要があります。リンク段階で

、それを実行しているときにあるあなたのプログラムの同じディレクトリにlibjson_linux-gcc-4.1.2_libmt.soを入れ、これが私の作品引数 -ljson_linux-gcc-4.1.2_libmt

+0

その例を作成できますか?私は/ usr/libフォルダに置いていたときにjsonのlibをリンクしていると思っていました。それは私には新しいものです。 – Urien

+0

@Urien、いいえ、リンクするライブラリを明示的にアプリケーションに伝える必要があります。たとえば、 'gcc -o myprogram myprogram.cpp -ljson_linux-gcc-4.1.2_libmt' – nos

関連する問題