【问题标题】:Change GCC from 4.2.1 to a more recent version on Mac在 Mac 上将 GCC 从 4.2.1 更改为更新的版本
【发布时间】:2013-09-22 20:58:26
【问题描述】:

安装了 GCC 4.7,但我的 mac 目前使用的是 4.2。我该如何切换它?

一些可能有用的细节:

操作系统:Lion 10.7.5

GCC:4.2.1

GCC 4.2.1 的路径:/usr/bin/gcc

GCC 4.7 的路径:/usr/local/bin/gcc-4.7

【问题讨论】:

  • 更改您的 PATH 变量,以便新的 GCC 领先于旧的。
  • 所以作为一个开发者你真的不知道$PATH

标签: xcode macos gcc homebrew


【解决方案1】:

将 GCC 4.8 安装到 Xcode 4.5、Xcode 4.6、Xcode 5.0:

对于没有安装 GCC 4.8 的人:

安装新版本的自制软件

你可以在网上找到安装方法

将您的 brew 更新到最新版本 ($brew update)

1.$brew install gcc48 --enable-all-languages

(可能应该通过brew安装mpc、mpfr和gmp,http://solarianprogrammer.com/2013/06/11/compiling-gcc-mac-os-x/

2.$brew link gcc48

3.备份g++,gpp,c++,cpp,c++ in /usr/bin/

4.[可选步骤]:

别名 g++-4.8,gpp-4.8,c++-4.8,cpp-4.8,c++-4.8

来自/usr/local/Cellar/gcc48/4.8.2/bin/g++

/usr/bin/

[未安装gcc的开发者的以上4个步骤]

[@“Donny P”:以上4个步骤可以跳过]

5.制作插件

1)下载a plugin of GCC 4.5 for Xcode

2)每“4.5”改成“4.8”,“4_5”改成“4_8”,文件名,文件内容,

文件GCC 4.5.xcspec中的“com.apple.compilers.gcc.headers.4_2”除外。

您可以保持English.lproj中的内容不变,并删除Japanese.lproj

3)在文件GCC 4.8.xcspec

(希望你已经把GCC 4.5.xcspec的文件名改成了GCC 4.8.xcspec

更改ExecPath = "...”;

ExecPath = "/usr/local/bin/gcc-4.8"(@"Donny P": 你可以改成"/usr/local/bin/gcc-4.7")

ExecPath = "/usr/local/Cellar/gcc48/4.8.2/bin/gcc-4.8"(对于通过 brew 安装 gcc-4.8 的人)

ExecPath = "/usr/bin/gcc"(针对完成第 4 步的人。)

4)删除文件GCC 4.8.xcspec中的“-Wshorten-64-to-32”部分

{
    Name = "GCC_WARN_64_TO_32_BIT_CONVERSION";
    Type = Boolean;
    DefaultValue = NO;
    CommandLineArgs = {
        YES = (
            "-Wshorten-64-to-32",
        );
        NO = ();
    };
    AppearsAfter = "GCC_WARN_PROTOTYPE_CONVERSION";
    Category = Warnings;
    CommonOption = NO;
    DisplayName = "Implicit Conversion to 32 Bit Type";
    Description = "Warn if a value is implicitly converted from a 64 bit type to a 32 bit type.
    [GCC_WARN_64_TO_32_BIT_CONVERSION, -Wshorten-64-to-32]";
}

6.将编辑后的GCC 4.8.xcplugin放入

/Applications/Xcode.app/Contents/Plugins/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/

7.重新打开 Xcode。

现在,新插件已经为您准备好了。您可以在项目的“Build Settings”的“Compiler for C/C++/Objective-C”中看到新的 GCC 编译器插件

8.更改 Xcode 项目中的构建设置

1)在Xcode的projecttarget设置中

将“C/C++/Objective-C 编译器”更改为“GCC 4.8”

2)在project设置中

删除“CLANG_CXX_LIBRARY”行

【讨论】:

  • 这看起来很麻烦 - 我连一半都懒得做。
  • 这不是官方的。但如果你想使用 Xcode 4.5+ IDE 来配合 GCC,你别无选择。
  • @trojanfoe 有时您应该包含不同的标头。而且有些符号细节也不一样。
  • 我不关注;什么“不同的标题”和“符号细节”?无论如何,OP 似乎并不关心 Xcode,只需要关于 $PATH 的(用户级)建议。
  • @trojanfoe,在 clang 中,如果包含 ,则不需要包含 来使用 memcpy 和 来使用 int32_t。在 GCC 中,您必须包含。
猜你喜欢
  • 2013-01-10
  • 2023-03-28
  • 2017-08-27
  • 2017-06-11
  • 2021-01-05
  • 2021-10-05
  • 2016-08-10
  • 2017-05-01
  • 1970-01-01
相关资源
最近更新 更多