Как включить внешнюю библиотеку в проект QT?

Возможный дубликат:
Добавление внешней библиотеки в проект Qt Creator

Это мой проект QT. Я добавил внешние библиотеки. При запуске этой программы появляются следующие ошибки: -: - "1: ошибка: не удается найти -libxml2", и когда я удаляю строку "LIBS + = -L/usr/local/lib -libxml2", она показывает "неопределенная ссылка на" xmlstrcmp "и многие другие ошибки, такие же, как и на этом. Спасибо заранее.

Файл "Test.pro" (файл проекта): -

QT       += core gui xml
TARGET = test
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH = /usr/local/include/libxml2

LIBS += -L/usr/local/lib -libxml2

***"MainWindow.h" File(Header File):-***

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
#include <libxml/xmlstring.h>
#include <libxml/list.h>
#include <libxml/tree.h>
#include <libxml/SAX.h>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    void parseDocument(char *docName);
    void parse(xmlDocPtr doc, xmlNodePtr cur);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

"MainWindow.cpp" (файл класса): -

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    char *docName;

    docName = "/home/garima/Documents/test-build-desktop/test.xml";
    parseDocument(docName);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::parseDocument(char *docName)
{
    xmlDocPtr doc;
    xmlNodePtr cur;

    doc = xmlParseFile(docName);
    if(doc == NULL)
    {
        qDebug() << "Document is not parsed successfully.";
        return;
    }

    cur = xmlDocGetRootElement(doc);

    if(cur == NULL)
    {
        qDebug() << "Document is empty.";
        xmlFreeDoc(doc);
        return;
    }

    if(xmlStrcmp(cur->name,(const xmlChar *) "story"))
    {
        qDebug() << "document is of wrong type. Story is not a root node.";
        xmlFreeDoc(doc);
        return;
    }

    cur = cur->xmlChildrenNode;

    while(cur != NULL)
    {
        if(xmlStrcmp(cur->name, (const xmlChar *) "storyinfo"))
        {
            parse(doc, cur);
        }

        cur = cur->next;
    }

    xmlFreeDoc(doc);
    return;
}

void MainWindow::parse(xmlDocPtr doc, xmlNodePtr cur)
{
    xmlChar *key;
    cur = cur->xmlChildrenNode;

    while(cur != NULL)
    {
        if(xmlStrcmp(cur->name, (const xmlChar *) "keyword"))
        {
            key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
            qDebug() << "Key:" << key;
            xmlFree(key);
        }

        cur = cur->next;
    }

    return;
}

**"Main.cpp" (Main Class) :-**

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
+1
источник поделиться
1 ответ
LIBS += -L/usr/local/lib -libxml2

Я думаю, -libxml2 ищет библиотеку под названием "ibxml2", которая, вероятно, не то, что вы хотите.

Если вы после библиотеки под названием "libxml2", я бы попытался использовать

LIBS += -L/usr/local/lib -lxml2
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос