Mac OS X Lion上的GNU GCC 4.6(.1)编译器

时间:2011-09-07 04:57:11

标签: c++ macos gcc gnu osx-lion

这种发展很新。想知道是否有人能指出我正确的方向。据我所知,使用MacPorts有一个错误,它不起作用。但是,我正在四处看看,看到了这个:http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/但仍然无法让它发挥作用。当我执行make for gcc时,花了3个多小时才完成,然后一旦我执行sudo make install,它就成功完成了但是当我尝试gcc --version时,它仍然说gcc版本4.2.1(基于Apple Inc. build 5658)(LLVM build 2335.15.00)。我需要4.6.1版本!

1 个答案:

答案 0 :(得分:3)

有三种可能的可能性:

  1. 它安装正确并进入$PATH之前的目录,而不是之前的GCC安装目录,但Bash的内部哈希表条目仍然指向旧的GCC。
  2. 它安装正确,但后来进入$PATH的目录,而不是之前的GCC安装目录。
  3. 已正确安装,但可执行文件未命名为gcc
  4. 如果是#1,只需运行命令hash -r然后重试。为了避免频繁的$PATH查找,Bash使用哈希表将可执行名称映射到可执行位置。当您在$PATH中安装新的可执行文件时,其名称与$PATH中的名称相同,但Bash不知道它。运行hash -r说“清除哈希表”。或者,您可以运行hash -d gcc来说“忘记哈希表中的gcc”。

    如果是#2,那么您需要按其全名执行gcc(例如/opt/local/bin/gcc),或修改您的$PATH,以便包含新gcc的目录早于您的目录现有的gcc。假设您正常安装了MacPorts,那应该已经为您完成了 - 通过修改/opt/local/bin启动文件,MacPorts将$PATH放在/usr/bin之前,而不是~/.bash_profile

    如果是#3,那么找出可执行文件的名称。几乎可以肯定它的名字是以gcc为前缀的,所以如果你输入gcc然后按Tab键两次,Bash会给你一个以gcc开头的所有命令的列表。它很可能被命名为gcc-4.6gcc-mp-4.6