将GCC 4.2设置为Mac OS X Leopard上的默认编译器

Cro*_*ent 24 macos xcode gcc osx-leopard

我敢肯定必须有办法做到这一点.您可能已经知道Leopard的最新版Xcode(事实上我认为Xcode的所有版本)都带有GCC 4.0.1和GCC 4.2.GCC 4.0.1是默认的系统编译器,而GCC 4.2是可以在Xcode项目设置中设置的可选编译器.

有谁知道如何将GCC 4.2设置为所有选项的默认编译器?无论我在Xcode中做什么,最好是命令行使用以及配置脚本仍然使用GCC 4.0.1而不是GCC 4.2.我假设它只是一个改变路径变量或一些这样的情况但我被困在这一个.

任何帮助表示赞赏.谢谢.

Mar*_*wis 19

所有配置脚本的命令行用法:

  cd /usr/bin
  rm cc gcc c++ g++
  ln -s gcc-4.2 cc
  ln -s gcc-4.2 gcc
  ln -s c++-4.2 c++
  ln -s g++-4.2 g++
Run Code Online (Sandbox Code Playgroud)

记录当前的链接目标,以便您可以根据需要进行恢复.

如果您不想更改系统范围设置,请在/ usr/bin(比如说$HOME/bin)之前将目录添加到PATH中,并在那里创建符号链接

我没有测试这是否会影响Xcode项目,因为我不使用Xcode(只有命令行).


IlD*_*Dan 18

在项目或目标信息窗口中,设置构建设置"C/C++编译器版本"(GCC_VERSION).

或者在目标信息窗口中,您可以将"系统C规则"更改为您喜欢的GCC版本.

更新:关于命令行,我将留给Leopard决定什么应该是默认编译器.如果要使用与Autotools配置等工具不同的编译器,最好定义CC变量.

CC=gcc-4.2 ./configure
Run Code Online (Sandbox Code Playgroud)

要么

export CC=gcc-4.2
Run Code Online (Sandbox Code Playgroud)

  • 与rm/ln -s解决方案相比,我发现'export CC = gcc-XY'更实用(和*nix一样).如果出现问题容易恢复,易于设置用户/系统范围,只需要编辑.bash_profile(或您最喜欢的shell rc). (6认同)

小智 16

由于既没有苹果也不是达尔文港口有gcc_select程序更改的默认版本系统的编译器(在GNU/Linux的存在),我想是在安全方面具有的XCode(和系统的其余部分),并建议保留符号链接,而不是设置环境变量,以覆盖要使用的GCC版本.

在我的.profile文件中,我有以下内容

export CC=/usr/bin/gcc-4.2
export CPP=/usr/bin/cpp-4.2
export CXX=/usr/bin/g++-4.2 
Run Code Online (Sandbox Code Playgroud)

我从源代码中成功地使用GCC 4.2编译了以下库.

  • OpenSSL的
  • 的libjpeg
  • 的libpng
  • zlib的
  • GST

但是...我无法获得Boost 1.39来确认环境变量,所以要用GCC 4.2编译Boost我需要更改/ usr/bin /中的符号链接,所以他们指向gcc v4.2

很长一段时间Boost库完成了使用GCC 4.2的编译后,我将符号链接恢复回原始的系统版本gcc-4.0.