5

次のリンカ エラー wrt jsoncpp operator= を解決するにはどうすればよいですか。

Json::Valueこのようなオブジェクトを作成します

Json::Value pt;
pt["type"] = 5;
pt["uuid"] = "f8c74622-d45e-4cfa-fe00-5e7042431c72";
pt["start frame"] = 10;
pt["duration"] = 20;
pt["payload"] = "aedddefffsadf";

これにより、Ubuntu 14.04 に同梱されているデフォルトの libjsoncpp-dev に対してリンクしようとすると、次のリンカー エラーが発生します。

「Json::Value::operator=(Json::Value)」への未定義の参照

追加情報:

また、GitHub の最新の jsoncpp に対してコンパイルおよびリンクすると、このリンカー エラーは発生しません。

/usr/include/jsoncpp/json の value.h (ubuntu apt でインストール) には

Value &operator=( const Value &other );

最新の jsoncpp value.h には

Value &operator=(Value other);
4

1 に答える 1

2

Debian にはjsoncpp-0.6.0-rc2. Ubuntuもそうだと思います。

に切り替えるだけでjsoncpp-0.8.z、 とバイナリ互換性が0.6.0-rc2あり、 のほとんどの拡張機能とバグ修正が含まれて1.y.zいます。

実際、Debian は0.8.z現在移行中です。Ubuntu が出荷されたバージョンを更新するまで、新しい機能 (主にBuilders ) を回避し、代わりに非推奨の Readers/Writers を使用する必要がある場合があります。これはおそらく既に行っていることです。したがって、すべてを簡単に機能させることができます。

于 2015-02-17T20:03:50.207 に答える