在 Mac 上找不到 Qt 库

Posted

技术标签:

【中文标题】在 Mac 上找不到 Qt 库【英文标题】:Qt Libraries cannot be found on Mac 【发布时间】:2014-03-03 11:52:38 【问题描述】:

我在 Mac 10.9.1 上设置 Qt 环境时遇到问题。如果我只是尝试用标准编译一个 C++ 文件

 g++ source.cpp -o output 
然后没有找到 Qt 库。例如,如果我有
#include <QString>

然后我会得到错误

致命错误:找不到“QString”文件

我已经安装了 Qt 5.2.1 并将其添加到我的 PATH 变量中,所以现在当我使用

制作项目时
qmake -project, qmake -spec macx-g++ 然后make

我收到错误消息,指出我的 Mac OSX 版本不受支持。我必须使用 Qt 来完成我的大学作业,请有人帮我设置一下。

任何帮助将不胜感激。

【问题讨论】:

This 可能有用 ;-) 嗯,以前的版本兼容小牛吗?我一直在四处寻找,但找不到太多。此外,它没有说明如何删除我已经安装的 Qt 版本。问题。 Qt 5.2.1 支持 Mavericks。您安装了哪个 XCode,是否安装了 XCode CLI 工具? 不确定 XCode 版本,但我确实安装了 CLI 工具。 【参考方案1】:

Qt 5 肯定支持 Mavericks。到目前为止,Qt 4 不支持它; ***foe 在他的评论中打错了 (nomen est omen?)。

您的错误是使用了错误的制造规范。 Qt 5 使用 clang,而不是 gcc。因此以下对我有用(不设置任何路径):

~/Qt5.2.1/5.2.1/clang_64/bin/qmake -project
~/Qt5.2.1/5.2.1/clang_64/bin/qmake -spec macx-clang
make

您可以同时存在多个 Qt 版本,当您安装新的 Qt 版本时没有理由卸载任何东西。

下面是一个独立的小示例。将其放在simple 文件夹中。要构建,请执行以下操作:

~/Qt5.2.1/5.2.1/clang_64/bin/qmake -spec macx-clang
make

您不想通过使用 -project 参数调用 qmake 来重新生成 .pro 文件。项目生成只是给你一个简单的骨架,你应该只是为了方便导入第三方代码。

请注意,根据定义,如果您使用任何可见的 GUI 元素(窗口、消息框等),就 Qt 而言,它不再是控制台应用程序。

# simple.pro
TEMPLATE = app
QT += widgets
# Creates a simple executable instead of an app bundle
CONFIG -= app_bundle
SOURCES += main.cpp
// main.cpp
#include <QApplication>
#include <QMessageBox>

int main(int argc, char ** argv)

  // It is an error not to have an instance of QApplication.
  // This implies that having an instance of QCoreApplication and QGuiApplication
  // is also an error.
  QApplication app(argc, argv);
  QMessageBox::information(NULL, "Get This!", "Something's going on");

【讨论】:

@nickcorin 你不能运行什么“脚本”?你的意思是你不能运行可执行文件?好吧,您只需提供可执行文件的完整路径。它在 .app 包中。如果这些是控制台项目,那么您必须编辑 .pro 文件以使其如此。 是的,我们从小做起,所以目前我们正在制作控制台项目,可能只有一两个 QMessageBox。 有些库好像还是找不到。 QString 和 QTextStream 工作正常,但例如找不到 QApplication,QMessageBox 或 QWidgets 也找不到。 通过将 QT += 小部件添加到我的 .pro 文件中并再次运行 qmake,我设法让一些库正常工作。现在,每次我尝试使用 QMessageBox 运行应用程序时,应用程序都会立即崩溃并显示“Abort Trap: 6”。 @nickorin 您必须发布一个单独的问题,其中包含一个演示崩溃的最小测试用例。您需要显示 .pro 和 main.cpp 文件的内容。

以上是关于在 Mac 上找不到 Qt 库的主要内容,如果未能解决你的问题,请参考以下文章

树脂配置在mac上找不到openssl

在 Mac 上找不到 openssl/aes.h' 文件

Torch Lua 在 mac 上找不到默认终端

在 Mac 上找不到 SDK 位置?

在 Mac 上找不到 lsocket 库

在 Linux 上从源代码构建的 Qt5 上找不到 Qt 平台插件 xcb