将NCRport 2.10.0与Qt 5.1.0集成时出错

时间:2013-08-31 20:42:46

标签: qt reporting-services report qt5 qmake

我开始将NCReport整合到我的应用程序中,但总是我遇到了这些错误

她是我的.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-08-14T17:44:33
#
#-------------------------------------------------


QT       += core gui sql xml

greaterThan(QT_MAJOR_VERSION, 4){
QT += widgets printsupport
DEFINES += HAVE_QT5
}



TARGET = gestionstock6
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    produit.cpp \
    customqtablewidget.cpp \
    customdelegatecombobox.cpp \
    customproxy.cpp \
    client.cpp \
    bondelivraison.cpp \
    chercherproduit.cpp \
    chercherclientproduitwidget.cpp \
    fournisseur.cpp \
    chercherfournisseur.cpp \
    vente.cpp

    HEADERS  += mainwindow.h \
    customqtablewidget.h \
    customdelegatecombobox.h \
    customproxy.h \
    client.h \
    bondelivraison.h \
    chercherproduit.h \
    produit.h  \
    produit.h \
    produit.h \
    chercherclientproduitwidget.h \
    fournisseur.h \
    chercherfournisseur.h \
    vente.h

FORMS    += mainwindow.ui \
    produit.ui \
    client.ui \
    bondelivraison.ui \
    chercherproduit.ui \
    chercherclientproduitwidget.ui \
    fournisseur.ui \
    chercherfournisseur.ui \
    vente.ui


       INCLUDEPATH = "E:\apprendreQt\gestionstock6\includes\include"

       LIBS = "E:\apprendreQt\gestionstock6\includes\lib\NCReport2.lib"

这是我对ncreport的实现

void Vente::on_pushButton_4_clicked()
{
    NCReport *report = new NCReport(this);
    report->reset(true);
    report->setReportFile("E:\apprendreQt\build-gestionstock6-Desktop_Qt_5_1_0_MinGW_32bit-Debug\reports\abdeu.xml");

    report->runReportToQtPreview();
}

当我编译我的项目文件时,我得到了错误

我已经尝试了很多次但同样的问题

E:\apprendreQt\gestionstock6\vente.cpp:222: erreur : undefined reference to `_imp___ZN8NCReport5resetEb'

E:\apprendreQt\gestionstock6\vente.cpp:223: erreur : undefined reference to `_imp___ZN8NCReport13setReportFileERK7QString'

E:\apprendreQt\gestionstock6\vente.cpp:225: erreur : undefined reference to `_imp___ZN8NCReport20runReportToQtPreviewEv'

collect2.exe:-1: erreur : error: ld returned 1 exit status

1 个答案:

答案 0 :(得分:0)

看起来你正在使用不兼容的库。

这告诉我你正在使用MinGW编译器

report->setReportFile("E:\apprendreQt\build-gestionstock6-Desktop_Qt_5_1_0_MinGW_32bit-Debug\reports\abdeu.xml");

但在你的.pro文件中,你包含了来自不同编译器的静态链接库(很可能是MS Visual Studio)

LIBS = "E:\apprendreQt\gestionstock6\includes\lib\NCReport2.lib"

MinGW的库应该有.a个扩展名,而不是.lib个。

不仅如此,您错误地使用了LIBS变量。对于MinGW编译器,您应该分别指定库路径(使用-L)和库本身(使用-l)。

您可以在不同的行上执行此操作:

LIBS += "-L/path/to/libraries"
LIBS += "-lmylibrary.a"

或单行:

LIBS += "-L/path/to/libraries -lmylibrary.a"