2012-06-27 4 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, чтобы передать эти два флага г ++:

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

Также обратите внимание, что 'lib path' - это не путь включения ('/usr/local/include/json'). Возможно, файлы библиотеки установлены в '/ usr/local/lib/...'? – leemes

+0

да, может быть, может быть, в/usr/lib или в любой папке, если вы префикс префикса во время установки – zapredelom

+0

@zapredelom i не определил никаких префиксов –