我开始将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
答案 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"