我尝试在Mac上构建一个简单的Qt 5程序。但我失败了。
代码非常简单:
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication app (argc, argv);
return app.exec();
}
我用过:
clang++ -I ~/Qt5.0.0/5.0.0/clang_64/include -L/Users/crazylion/Qt5.0.0/5.0.0/clang_64/lib test.cpp
然后我收到了这个错误:
Undefined symbols for architecture x86_64:
"QApplication::exec()", referenced from:
_main in test-jPGORy.o
"QApplication::QApplication(int&, char**, int)", referenced from:
_main in test-jPGORy.o
"QApplication::~QApplication()", referenced from:
_main in test-jPGORy.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我有什么遗漏吗?
答案 0 :(得分:1)
首先,不要手工编译和链接Qt项目;使用qmake和项目文件。
在源目录中运行qmake -project
以生成基本项目文件。
编辑项目文件并添加以下行:QT += widgets
现在运行qmake
以生成makefile。
现在运行make
来构建您的程序。
其次,您可以简单地#include <QApplication>
答案 1 :(得分:1)
如果你想使用clang ++来支持qmake,你需要指定要连接的库以及库目录(你提供的)。
clang++ -I ~/Qt5.0.0/5.0.0/clang_64/include -L/Users/crazylion/Qt5.0.0/5.0.0/clang_64/lib -lQtCore -lQtGui test.cpp
答案 2 :(得分:0)
我有同样的问题,在我看来,在发布中存在某种错误它给了我一些错误,因为在全新安装(使用qt creator)我没有一些模糊的qt库(不是正常的qt5模块,但开发中的某种库)所以我倾向于认为它可能是qt的问题
那说我有一些问题需要更好地理解:
- 你在使用IDE吗?
- 你使用的是它吗?
- 您是否包括* .pro中的所有模块用于地震?
- 你使用过4.8版本,你是否遇到过这些问题?
P.S。如果您没有任何特殊需要,我建议您坚持使用4.8版本(因为我没有问题)因为5.0刚刚发布