Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用QJson库_C++_Qt_Static Libraries_Qjson - Fatal编程技术网

C++ 使用QJson库

C++ 使用QJson库,c++,qt,static-libraries,qjson,C++,Qt,Static Libraries,Qjson,我知道这是一个愚蠢的问题,但仍然 我想在我的项目中使用这个库。我已经从官方网站下载了tarball(可能需要提到的是,我的Ubuntu版本低于64位Ubuntu12.04)。安装文件包含以下说明 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ .. make make install /sbin/ldconfig, if necessary 我就是这么做的。我已将QJson的/incl

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

我想在我的项目中使用这个库。我已经从官方网站下载了tarball(可能需要提到的是,我的Ubuntu版本低于64位Ubuntu12.04)。安装文件包含以下说明

  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);
}
原因是什么?如何使其工作?

您遇到的是链接器(而不是编译器)错误。您需要使用
-L
选项将路径添加到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