clang未能在Mac OS X上与Qt 5.1.1框架链接
问题描述:
我在'/Users/me/lib/qt-5.1.1/'中安装了Qt 5.1.1。在 '/Users/me/lib/qt-5.1.1/5.1.1/clang_64/lib' 有全框架,而是构建一个简单的应用程序:典型步骤后clang未能在Mac OS X上与Qt 5.1.1框架链接
#include <QtGui>
#include <QMainWindow>
#include <qapplication.h>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow mw;
mw.show();
return app.exec();
}
:
$qmake -project
$qmake
$make
连接失败链接:
Undefined symbols for architecture x86_64:
"QMainWindow::QMainWindow(QWidget*, QFlags<Qt::WindowType>)", referenced from:
_main in main.o
"QMainWindow::~QMainWindow()", referenced from:
_main in main.o
"QApplication::exec()", referenced from:
_main in main.o
"QApplication::QApplication(int&, char**, int)", referenced from:
_main in main.o
"QApplication::~QApplication()", referenced from:
_main in main.o
"QWidget::show()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [test.app/Contents/MacOS/test] Error 1
我加入到连接标志
-F/Users/me/lib/qt-5.1.1/5.1.1/clang_64/lib -framework QtGui -framework QtCore
铿锵版是:
$clang --version
Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix
任何想法?
答
qmake生成的项目可能不包含widgets
模块。
请检查您的.pro
文件。你做不是需要手动添加这些框架链接器标志。只需添加你的模块到QT变量:
QT += widgets
QMAKE具有相关解决机制,因此,如果您添加小部件模块,该core
和gui
模块将自动被拉动。
请注意,widgets
是Qt的5一个新的模块在Qt 4,QWidget
层次是gui
模块的一部分。它已被分离出来,创建一个轻量级gui
模块。我的other answer解释了在Qt 5中提供了哪些GUI框架。
谢谢,它的工作原理...我不知道新模块的“小工具”。我认为'gui'和'core'就足够了。但是,我看到这两个模块自动拉入,而不需要在'.pro'文件中指定'widgets'模块。 – MirkoBanchi