1

我尝试在 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)

有什么我想念的吗?

4

3 回答 3

3

首先,不要手动编译和链接Qt项目;使用 qmake 和项目文件。

在您的源目录中运行qmake -project以生成基本项目文件。

编辑项目文件并添加以下行:QT += widgets

现在运行qmake生成一个makefile。

现在运行make以构建您的程序。

其次,您可以简单地#include <QApplication>

于 2013-02-05T15:07:39.973 回答
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
于 2013-02-05T15:39:45.280 回答
0

我遇到了同样的问题,在我看来,版本中存在某种错误,它给了我一些错误,因为在全新安装(使用 qt creator)之后,我没有一些晦涩的 qt 库(不是普通的 qt5模块,但某种库正在开发中)所以我倾向于认为这可能是 qt 的问题

也就是说,我有一些问题需要更好地理解:

- 你在使用 IDE 吗?

- 如果您使用的是哪个?

- 你是否在 *.pro 中包含了所有用于地震的模块?

-你用过4.8版本,有没有遇到过这些问题?

PS如果您没有任何特殊需要,我建议您坚持使用4.8版一段时间(就像我正在做的那样没有问题),因为5.0刚刚发布

于 2013-01-24T12:24:49.620 回答