C++ 使用QJson库
我知道这是一个愚蠢的问题,但仍然 我想在我的项目中使用这个库。我已经从官方网站下载了tarball(可能需要提到的是,我的Ubuntu版本低于64位Ubuntu12.04)。安装文件包含以下说明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
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