我开始将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:apprendreQtgestionstock6includesinclude"
LIBS = "E:apprendreQtgestionstock6includeslibNCReport2.lib"
这是我对ncreport 的实现
void Vente::on_pushButton_4_clicked()
{
NCReport *report = new NCReport(this);
report->reset(true);
report->setReportFile("E:apprendreQtbuild-gestionstock6-Desktop_Qt_5_1_0_MinGW_32bit-Debugreportsabdeu.xml");
report->runReportToQtPreview();
}
当我编译我的项目文件时,我得到了低于的错误
我已经试过很多次了,但同样的问题
E:apprendreQtgestionstock6vente.cpp:222: erreur : undefined reference to `_imp___ZN8NCReport5resetEb'
E:apprendreQtgestionstock6vente.cpp:223: erreur : undefined reference to `_imp___ZN8NCReport13setReportFileERK7QString'
E:apprendreQtgestionstock6vente.cpp:225: erreur : undefined reference to `_imp___ZN8NCReport20runReportToQtPreviewEv'
collect2.exe:-1: erreur : error: ld returned 1 exit status
看起来您使用的是不兼容的库。
这告诉我你正在使用MinGW编译器
report->setReportFile("E:apprendreQtbuild-gestionstock6-Desktop_Qt_5_1_0_MinGW_32bit-Debugreportsabdeu.xml");
但是在.pro
文件中,包含了来自不同编译器(很可能是MSVisualStudio)的静态链接库
LIBS = "E:apprendreQtgestionstock6includeslibNCReport2.lib"
MinGW的库应该具有.a
扩展,而不是.lib
扩展。
不仅如此,您还错误地使用了LIBS变量。对于MinGW编译器,应该分别指定库路径(使用-L
)和库本身(使用-l
)。
你可以在单独的线路上这样做:
LIBS += "-L/path/to/libraries"
LIBS += "-lmylibrary.a"
或单行:
LIBS += "-L/path/to/libraries -lmylibrary.a"