Qt5 和 MacOS X
Posted
技术标签:
【中文标题】Qt5 和 MacOS X【英文标题】:Qt5 and MacOS X 【发布时间】:2015-02-03 17:26:05 【问题描述】:我已经从 MacPorts 在我的 Mac OS X Yosemite 上安装了 Qt5。 如果我编译这个简单的文件
#include <QtGui>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
int main(int argc, char **argv)
QApplication app(argc, argv);
QLabel lbl("Hello World!");
lbl.show();
return app.exec();
我会出错
Undefined symbols for architecture x86_64:
"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
"QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)", referenced from:
_main in main.o
"QLabel::~QLabel()", 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: *** [123.app/Contents/MacOS/123] Error 1
我换了QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
到QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
或QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10
在文件/opt/local/share/qt5/mkspecs/macx-clang/qmake.conf
但它没有结果。
【问题讨论】:
你安装了 64bit qt 吗? (有没有可能?) 我已经通过“sudo port install qt5-mac”安装了。我想,它是 64 位的。 你能显示链接器命令吗? 【参考方案1】:如果没有更多信息,很难确切知道,但请检查您是否在 .pro 文件中添加了小部件:
QT += gui core
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
如果您不使用 qtcreator,您可能必须显式运行 qmake。另外,您不会显示主窗口而不是 QLabel 吗?我还没有检查这是否是合法可行的代码,但也许你应该开始显示一个主窗口并首先验证它是否有效。 QTCreator 有一个新的Qt Widgets Application
的项目模板。还要检查 macports 是否正在安装最新的 qt5 版本,以防它是错误的路径或配置。
【讨论】:
以上是关于Qt5 和 MacOS X的主要内容,如果未能解决你的问题,请参考以下文章
PySide 安装错误 - python 2.7 - QT5 - macOS Sierra