【问题标题】:Default compiler from llvm-clang to llvm-gcc42 (command line)从 llvm-clang 到 llvm-gcc42 的默认编译器(命令行)
【发布时间】:2014-03-11 14:00:30
【问题描述】:

我正在尝试从命令行编译一个项目。默认编译器 LLVM-clang,我需要使用 LLVM-gcc42 进行编译。在 Xcode 中切换编译器非常简单。但是,在命令行上似乎更有问题。据我了解,“/usr/bin/cc”和“/use/bin/gcc”用于指向 c/c++ 编译器。我注意到“cc”链接到同一目录中的“clang”。所以,我将“cc”改为指向“gcc”。没有帮助。当我跑步时

$ gcc -v

我得到回应

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1

Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)

Target: x86_64-apple-darwin12.5.0

如何将 clang 更改为 gcc?

我的设置是:

MAC OS X 10.8.5

Xcode 4.6.2

命令行工具

编辑 13.02.2014

该项目是一个使用第三方 c/c++ 库混合的 QT 项目。我的任务是为其编写一个新的目标 C 库。该项目是使用-spec macx-g++ 参数构建的。可以在/QTROOT/mkspecs/macx-g++/QTROOT/mkspecs/common 找到配置脚本。在g++-base.conf 中关键变量定义为:

QMAKE_CC = gcc

QMAKE_CXX = g++

【问题讨论】:

  • 项目是如何编译的 - 即它从哪里获得要在其 makefile 或其他构建脚本中使用的编译器
  • Closers 不是关于开发工具的,所以这里是主题而不是 SuperUser,但是我怀疑我们需要更多信息,否则它将因为信息不足而被关闭
  • 好的,我会添加更多细节。项目有点复杂。所以,我故意让我的问题保持简单。

标签: xcode macos gcc command-line clang


【解决方案1】:

不要更改可能影响其他程序的链接,而是使用构建脚本中 llvm 可执行文件的完整路径

例如如果你已经安装了命令行工具

QMAKE_CC = /usr/bin/llvm-gcc-4.2

QMAKE_CXX = /usr/bin/llvm-g++-4.2

【讨论】:

    【解决方案2】:

    好的,解决了问题。解决方案很简单。我从/usr/bin/gcc/usr/bin/g++ 中删除了旧链接,并创建了指向正确编译器的新链接。

    gcc -> /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2

    g++ -> /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2013-04-29
      相关资源
      最近更新 更多