-1

我知道这是一个愚蠢的问题,但仍然如此。

我想在我的项目中使用QJson库。我已经从官方网站下载了压缩包(可能需要提到我在 64 位 Ubuntu 12.04 下)。INSTALL文件有以下说明

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

我准确地遵循了这一点。我已将QJson 的 和 文件夹添加到/include/lib的.share/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 回答