Qt 5.1 for OSX 安装只包含 clang_64 目录,如何使用 macports gcc 编译?

Posted

技术标签:

【中文标题】Qt 5.1 for OSX 安装只包含 clang_64 目录,如何使用 macports gcc 编译?【英文标题】:Qt 5.1 for OSX installation only includes clang_64 directory, how do I compile with macports gcc? 【发布时间】:2013-08-04 01:47:02 【问题描述】:

我想在 OSX 上使用带有 Qt/Qt 创建器的 macports gcc 4.9。问题是5.1的安装只有clang_64目录,没有明显的gcc目录。如果我在preferences/build & run 下将编译器设置为gcc 4.9 并指向Qt 使用clang_64 目录下的qmake,它会自动调用clang++ 而不是我指定的gcc 可执行文件。

我使用 macports gcc 而不是 clang,因为 clang 需要更新系统 libc++ 并支持 c++11 功能才能使用它们。我正在运行 OSX 10.6,所以据我了解,就 c++11 clang 而言,这是不行的。

【问题讨论】:

我认为 gcc 和 Cocoa 不会再相处下去了。 他们需要吗?我知道我已经使用 makefile 操纵了 macports gcc 以在 emacs 中使用早期版本的 Qt。不过,我是 qt creator 设置的新手。 我认为没有为 gcc 正确选择 mkspec。无论如何,AFAIK,clang 是 Mac OS 的新官方编译器。 为什么会被删除? gcc / clang++ 还不能完全互换,我认为还有其他人在 osx 上使用 gcc。 【参考方案1】:

想出了一种方法来做到这一点,尽管它有点老套(Qt 创建者实际上忽略了它自己的编译器设置)。使用 Qt 5.1 qmake(不管它在 clang_64 目录中)。在 .pro 文件中,添加:

QMAKE_CC = gcc-mp-4.9
QMAKE_CXX = g++-mp-4.9
QMAKE_LINK = g++-mp-4.9
QMAKE_CXXFLAGS += -std=c++11

似乎可以解决问题。如果此解决方案/更好的解决方案有问题,请发表评论。

【讨论】:

这似乎是解决方案,谢谢!我查看了很多线程,但没有找到任何关于此的内容。此外,qmake 会以这种方式使用正确的编译器

以上是关于Qt 5.1 for OSX 安装只包含 clang_64 目录,如何使用 macports gcc 编译?的主要内容,如果未能解决你的问题,请参考以下文章

OSX 10.6 上的 Qt5

Qt + CMake for OSX Bundle:Cocoa 平台插件

使用MAMP在OSX上安装Laravel 5.1

OSX下奇怪的Qt包含目录结构

在 Mac OSX 上安装 Qt 的调试版本

04_HUD_Qt_for_Python开发之路2