-1

私はそれがばかげた質問であることを知っていますが、それでも.

プロジェクトでQJsonライブラリを使用したいと考えています。公式サイトから tarball をダウンロードしました (おそらく、64 ビットの Ubuntu 12.04 を使用していることに言及する必要があります)。INSTALLファイルには次の指示があります。

  mkdir build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ ..
  make
  make install
  /sbin/ldconfig, if necessary

私は正確に従った。QJson/include/libshareフォルダが . に追加されました/usr/local

その後、IDE (QtCreator) を開き、次の簡単なコードでテスト プロジェクトを作成します。

#include <QVariant>
#include <qjson/serializer.h>

int main(int argc, char *argv[])
{
    QJson::Serializer s;
    QVariantMap map;
    map["hello"] = QVariantList() <<"t1"<<"t2";
    QByteArray json = s.serialize(map);
}

正常に処理され、すべての#include型が認識され、QJson クラスのオートコンプリートが正常に機能します。ただし、コンパイルしようとすると、次のようになります (読みやすくするために完全なパスは削除されています)。

<...>/QJsonTest/main.cpp:15: undefined reference to `QJson::Serializer::Serializer()'
<...>/QJsonTest/main.cpp:18: undefined reference to `QJson::Serializer::serialize(QVariant const&)'
<...>/QJsonTest/main.cpp:18: undefined reference to `QJson::Serializer::~Serializer()'
<...>/QJsonTest/main.cpp:18: undefined reference to `QJson::Serializer::~Serializer()'
collect2: ld returned 1 exit status

その理由は何ですか?どうすれば機能しますか?

4

1 に答える 1

5

リンカー (コンパイラではない) エラーが発生しています。-LオプションでQJsonライブラリファイルへのパスを追加する必要があります

于 2012-07-25T12:53:13.707 に答える