2012-07-25 75 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庫文件中