2012-07-25 64 views
-1

我知道这是一个愚蠢的问题,但仍然。使用QJson库

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

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

我跟着精确。我已将/include,/libshare QJson文件夹添加到我的/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 

是什么原因,以及我如何工作的呢?

回答

5

您正在点击链接器(而不是编译器)错误。您需要使用-L选件将路径添加到QJson库文件中