【问题标题】:Compiling a Qt5.2 project on OsX 10.9 with gcc4.2?使用 gcc4.2 在 OsX 10.9 上编译 Qt5.2 项目?
【发布时间】:2014-02-22 09:25:08
【问题描述】:

我有一个 QT 项目在我当前的配置下完美运行(OsX 10.8.5、QT4.8.5 和编译器 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM 构建 2336.11.00)

问题是我正在切换到安装了 OsX 10.9 的新笔记本电脑。作为已知问题,只有 CLang。使用 CLang 项目会在某些库上产生很多 编译错误,我无法更改这些错误。 (当前配置下没有给出的错误)。

因此我使用 brew 和 gcc --version 安装了 apple-GCC4.2.1 我得到: i686-apple-darwin11-llvm-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3).

现在,对于目录下的文件 <stdarg.h><float.h>,我得到“没有这样的文件或目录” /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1

据我了解,它就像包含来自Xcode compiler 的基本 c++ 标头,它们与 gcc4.2.1 想要的不匹配。

有人可以帮助我吗?提前谢谢你。

【问题讨论】:

  • 我不建议尝试在 10.9.1 上使用 brew 安装 gcc — 事情可能会完全搞砸,并且保持所有路径笔直并非易事。我建议只使用precompiled version 并这样做。但是,在遇到所有这些麻烦之前,您是否尝试将部署目标设置为较低的值?在不知道您遇到的确切错误的情况下,这可能是一个简单的修复,也可能是一个乏味的修复。
  • 如何设置部署目标?我在 c、cxx 和 l 标志上使用 -mmacosx-version-min=10.7
  • 试试-mmacosx-version-min=10.6。您打算使用哪个版本的 OS X?也可能是 10.7 太低了,你需要升级到 10.8 或 10.9。
  • 我必须在 osx 10.8 上工作,我会试一试。

标签: c++ macos qt gcc qt5


【解决方案1】:

所有 C++ 代码(Qt、您的应用程序、您使用的任何 C++ 库)都必须使用相同的 C++ 编译器进行编译。

【讨论】:

  • 使用“INCLUDEPATH += ...”包含它们。如何检查它们是否使用与项目相同的编译器进行编译?
  • @Fr.Usai 你用什么编译器来编译 Qt?如果您没有自己构建 Qt,您可能会遇到问题。
【解决方案2】:

我已经解决了。

我不得不说以下过程适用于我的情况,但我不能确定这是否适合您和/或此过程是否会对您的系统配置造成危险。

对我来说,完成了这个程序。

  • 安装 command_line_tools_os_x_mavericks_for_xcode_late_october_2013 (不确定是否有必要,但我认为是)
  • 安装 Qt4.8.5 并在 QtCreator 上进行设置
  • 安装homebrew
  • 使用 brew 安装 apple-gcc42 和 gdb:

    brew tap homebrew/dupes

    brew install apple-gcc42

    brew 安装 gdb

在 QtCreator 上设置编译器和 GDB,然后创建您的工具包。

  • codesign gdb 遵循this 指南(滚动直到找到 “为签名生成证书”。

玩得开心。

在我的情况下,有必要修改 makefile 以设置 CFLAGS、CXXFLAGS 和 LFLAGS 的值 -mmacosx-version-min=10.6。

【讨论】:

    猜你喜欢
    • 2013-06-23
    • 2016-04-04
    • 2014-08-27
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2014-03-31
    相关资源
    最近更新 更多