Xcode 5.0.1,Mac OS 10.9,尝试使用 Qt-Creator 3.0 beta。
我需要将 Qt 5.2 与 32 位第三方库一起使用,所以我希望 Qt 和我的应用程序是 32 位的。是的,我知道现在是 2013 年……但我现在别无选择。
我用以下内容构建了 Qt 5.2 (beta),做了“make”和“make install”。一切都好。
./configure -debug-and-release -commercial -confirm-license -nomake examples -platform macx-clang-32 -arch x86 -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-symbian -no-sql-symsql -no-sql-tds -prefix ~/dev/qt5
现在我想通过构建一个简单的“Hello World”应用程序来测试 Qt 5.2。但即使我的 Qt 是为 32 位构建的,即使设置了 Qt 版本和工具包,并且我使用“Clang(/usr/bin 中的 x86 32 位)作为我的编译器,我也会遇到链接错误,就好像我的“hello world”应用程序正在为 x86_64 构建。
首先我收到警告:
"...QtGui.framework/QtGui, file was built for i386 which is not the architecture being linked (x86_64)... QtWidgets.framework/QtWidgets, file was built for i386 which is not the architecture being linked (x86_64)...... etc"
然后我自己得到错误:
Undefined symbols for architecture x86_64:
"qt_assert(char const*, char const*, int)", referenced from:
QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const in moc_mainwindow.o
"QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:
QTypedArrayData<unsigned short>::deallocate(QArrayData*) in mainwindow.o
"QStatusBar::QStatusBar(QWidget*)", referenced from:
Ui_MainWindow::setupUi(QMainWindow*) in mainwindow.o
"QMainWindow::addToolBar(QToolBar*)", referenced from: ..... etc
我尝试将其添加到我的 *.Pro 文件中:
CONFIG += qt x86
CONFIG -= x86_64
但它仍然尝试构建 X86_64。
如何强制我的 hello-world 应用程序构建 32 位并与我构建的 32 位 Qt 框架兼容?
谢谢。