2012-06-27 60 views
3

我已成功(?)按照歸檔中的說明安裝了QJson庫。但是,編譯器給了我這個錯誤:對QJson :: Parser :: Parser的未定義引用

Undefined reference to QJSon::Parser::Parser(). 

我發現這裏的庫文件已安裝:這是/usr/local/include/json目錄。但其中只有*.h個文件。

最小代碼:

的main.cpp

#include <QtGui/QApplication> 
#include <qjson/parser.h> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QJson::Parser parser; 
    return a.exec(); 
} 

我使用Linux操作系統。

*.cpp其中的文件是?我做錯了什麼?爲什麼圖書館不完整?

回答

2

起初,您必須找到一個庫文件,而不是*.cpp文件。也許這 有一個像"libqjson.a""libqjson.so"名稱和與您的代碼編譯這個庫或通過這個鍵

g++ -L(lib path) -lqjson 

事實證明(見下面的評論),庫路徑是/usr/local/lib,所以這一行變爲:

g++ -L/usr/local/lib -lqjson 

使用Qt(QMAKE),只是這一行添加到您的.pro文件,以通過這兩個標誌到g ++:

LIBS += -L/usr/local/lib -lqjson 
+0

另請注意,'lib路徑'不是包含路徑('/ usr/local/include/json')。也許庫文件安裝在'/ usr/local/lib/...'中? – leemes

+0

yes也許,也可能在/ usr/lib或任何文件夾中,如果您在安裝期間定義前綴 – zapredelom

+0

@zapredelom我沒有定義任何前綴 –