Qt Creator:发布版本无法编译

时间:2016-03-30 15:34:48

标签: c++ windows qt mingw qt-creator

我写了一个相对简单的Qt程序,我正在尝试使用Qt Creator下的MinGW编译窗口。 Debug版本构建和运行没有问题,但是当我尝试构建Release版本时,我得到了这些错误

main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
main.cpp:-1: error: undefined reference to `_imp___ZN7QWidget4showEv'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplication4execEv'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationD1Ev'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationD1Ev'
:-1: error: release/main.o: bad reloc address 0x13 in section `.eh_frame'
collect2.exe:-1: error: error: ld returned 1 exit status

错误似乎表明无法找到一个或多个核心Qt库,但.pro文件包含行QT += core gui widgets,并且没有特定的Debug / Release。我已经尝试清理/重建项目并重新启动Qt Creator,但无济于事。编译其他项目的发布版本没有问题。我正在使用Qt 5.2.1版。有任何想法吗?

更新

我在.pro文件中挑出了这一行作为原因

win32: LIBS += -L"C:/Program Files (x86)/MATLAB/R2015b/bin/win32" -llibmat -llibmx

在makefile中我看到了这个

LIBS = -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmain "-LC:/Program Files (x86)/MATLAB/R2015b/bin/win32" -llibmat -llibmx -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib -lQt5Widgets -lQt5Gui -lQt5Core  

我怀疑问题在于makefile中列出链接库的顺序。我模糊地回忆起过去遇到类似的问题。如何强制qmake将Matlab库放在列表的末尾?

0 个答案:

没有答案