【发布时间】:2018-01-04 08:21:44
【问题描述】:
如果简单的演示应用(控制台项目模板)用qmake命令行编译,先试试:
SET PATH=%PATH%;C:\Qt\Qt5.9.1\5.9.1\mingw53_32\bin;C:\Qt\Qt5.9.1\Tools\mingw530_32\bin
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\bin\qmake.exe -makefile C:\Software\test.pro -spec win32-g++
mingw32-make.exe
pause
现在尝试重新链接应用程序:
C:\Qt\Qt5.9.1\Tools\mingw530_32\bin\ld -o test release\main.o -LC:\Qt\Qt5.9.1\5.9.1\mingw53_32\bin -lQt5Core --verbose > ld_dump.txt
pause
错误
main.o undefined reference to _Unwind_Resume
main.o undefined reference to __gxx_personality_v0
为了比较,使用 QtWidgets 的稍微复杂的应用程序会产生更多错误(当然,我在链接器 bat 文件中添加了缺少的 Qt 库)
moc_widget.o undefined reference to strcmp
moc_widget.o QObject undefined reference to vtable for __xyyabiv1:: __class_type_info
...
谷歌搜索错误 1+2 他们说这可能是由不同的编译器引起的。但我使用的是相同的工具。
pro 文件的样子
QT += core
QT -= gui
CONFIG += c++11
TARGET = test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
我是否可能需要将某种 c++11 标志传递给链接器ld?
【问题讨论】: