对于这种开发很新颖。想知道是否有人能指出我正确的方向。据我可以看到,使用MacPorts有一个错误,它不起作用。但是,我正在阅读,看到这个:http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/但仍然无法使其工作。当我执行gcc make时,花了3个多小时才完成,然后一旦我执行sudo make install,它成功完成了,但是当我尝试gcc --version时,它仍然说gcc版本4.2.1(基于Apple Inc. build 5658)(LLVM build 2335.15.00)。我需要4.6.1版本!Mac OS X Lion上的GNU GCC 4.6(.1)编译器
回答
有三种可能的可能性:
- 是否正确安装并进入目录早些时候在你的
$PATH
比你以前的GCC安装,但bash的内部哈希表条目仍指向旧GCC。 - 它安装正确,但是在您以前的
$PATH
之后进入了一个目录,而不是以前的GCC安装。 - 正确安装,但可执行文件未命名为
gcc
。
如果#1,只需运行命令hash -r
并再试一次。为了避免频繁的$PATH
查找,Bash使用哈希表将可执行文件名映射到可执行位置。当你在你的$PATH
中安装一个新的可执行文件时,其名字与$PATH
中稍后的版本相同,Bash不知道它。运行hash -r
说“清理你的散列表”。或者,你可以运行hash -d gcc
来说“忘记你的散列表中的gcc”。
如果#2,则您需要通过其全名执行gcc(例如/opt/local/bin/gcc
),或者修改您的$PATH
以使包含新gcc的目录早于现有gcc的目录。假设您正常安装了MacPorts,那么应该已经为您完成了 - 通过修改您的~/.bash_profile
启动文件,MacPorts将/opt/local/bin
放在$PATH
之前,而不是/usr/bin
。
如果#3,那么找出可执行文件的名称。几乎可以肯定的是一个以gcc为前缀的名字,所以如果你输入gcc然后再按Tab键两次,Bash会给你一个以gcc开头的所有命令的列表。很有可能它被命名为likw gcc-4.6
或gcc-mp-4.6
。
我建议在'/ usr/local'中安装一个自定义的gcc(通过给'。/ configure'配置'--prefix =/usr/local')并检查你的'$ PATH'来确保'/ usr/local/bin'在'/ usr/bin'之前。另外,为了显示你的shell可以看到的所有gccs,使用命令'type -a gcc',它将显示所有名为'gcc'的命令的路径。如果没有'-a'选项,它会向你显示如果你在命令行输入'gcc'就会执行的那个选项。 –
好的,谢谢你们俩的帮助。我跑了类型-a gcc并找到了2个版本。我想使用/ usr/local/bin/gcc中的第二个。当我执行/ usr/local/bin/gcc -v时,它显示为4.6.1。我怎样才能修改我的$ PATH文件使其默认为第一个? –
其实,我修改了$ PATH文件,它看起来像这样'在/ usr/local/bin目录 在/ usr/bin中 /bin中 /usr/sbin目录 /sbin' 但是当我做GCC --version我仍然有4.2.1 –
- 1. 编译Mac OS X上的lsyncd(Lion)
- 2. Mac OS X Lion - 编译Q
- 3. 在Mac OS X Lion上使用gcc not llvm-gcc Lion
- 4. Mac OS X Lion上的LLVM
- 5. 如何在OS X Lion上获得GCC?
- 6. 在Mac os上编译C代码x lion
- 7. 在Mac OS X Lion上启用Xdebug Lion
- 8. 在Mac OS X上安装gcc编译器10.6
- 9. 在Mac OS X Lion上构建32位模式Lion
- 10. 在Mac OS X上启用wxWidgets编译Erlang Lion
- 11. 交叉编译器的Mac OS X
- 12. 关于Mac OS X Lion上的Apache
- 13. 由于gcc路径,Cabal不能在Mac OS X Lion上工作
- 14. Mac OS X上的Xcode版本Lion 10.7.2
- 15. 用CoreServices.h在Mac OS X上编译pulseaudio
- 16. 无法在mac os x lion上安装ruby 1.9.2,gcc问题
- 17. Mac OS X v10.7 GDB(Lion)
- 18. 在Mac OS X上编译mp4v2
- 19. Erlang NIF测试-OS X Lion
- 20. libusb_claim_interface在Mac OS X上失败Mountain Lion
- 21. 在mac os x mountain lion上安装boost_1_53_0
- 22. Qt在Mac OS X Mountain Lion上运行
- 23. 编译和Mac OS X上联libev
- 24. libpipeline无法在Mac OS X上编译
- 25. 在mac os上交叉编译x
- 26. 在Mac OS X上编译OpenGL SOIL
- 27. 从Mac OS X Mountain Lion降级或删除GCC 4.8
- 28. 在OS X 10.7上安装pycurl Lion
- 29. 如何编译为Mac OS X 10.5
- 30. mac os中的gcc版本4.1.2 x
哪位gcc?我不认为你已经使用了你编译的gcc。尝试指定完整路径。 –
Dyno Fu可能是对的。做一个'哪个gcc'来看你实际使用哪一个。 –
您是否已将GCC配置为在自定义位置安装?覆盖系统的GCC通常是一个坏主意(显然你没有)。如果您已将其配置为使用自定义安装位置,请查看该位置(例如/ opt/bin或/ usr/local/bin)是否包含'gcc'。 – 2011-09-07 05:08:15