2012-06-13 49 views
0

因此,我使用自制軟件下載了gcc,這樣我就可以將gcc和g ++更新到4.7。發行鏈接gcc-4.7 Mac OSX 10.6

於是我:

$ mkdir ~/bin 

創建~/.bashrc與內容:

'export PATH=$HOME/bin:$PATH' 

創建~/.bash_profile與內容:

'. $HOME/.bashrc' 

然後:

$ ln -s /usr/local/bin/g++-4.7 ~/bin/g++

所以現在我跑g++ -v and it's 4.7,YAY!

現在我去更新gcc和做:

$ ln -s /usr/local/bin/gcc-4.7 ~/bin/gcc

我沒有得到任何錯誤,但後來當我運行gcc -VI得到:

gcc-4.7: error trying to exec '/usr/local/bin/i686-apple-darwin10-gcc-4.2.1': execvp: No such file or directory 

因此,似乎在尋找4.2出於某種原因?如果我cd到~/bin/gcc並做./gcc -v它工作正常。另外echo $ PATH有正確的~/bin path。我不知道爲什麼g ++工作和gcc沒有。

+0

首先,「哪個gcc」返回什麼?其次,你確定你想要這樣做嗎?以這種方式隱藏你的其他編譯器可能是一個壞主意(一方面,自制軟件不會喜歡它),就像通過一個符號鏈接運行gcc而不是它的本地目錄一樣。 – abarnert

+0

等一下:「如果我cd到〜/ bin/gcc並且執行./gcc -v它可以工作」。如果這是準確的,這意味着你有一個名爲〜/ bin/gcc的目錄,符號鏈接是〜/ bin/gcc/gcc,這當然不在你的路徑中。 – abarnert

+0

哪個gcc返回:/ Users/user/bin/gcc。 我不確定我想隱藏編譯器這種方式哈哈,我不知道什麼是最好的方式來做到這一點。 對不起,我cd到〜/ bin,然後執行./gcc -v。 – wright8191

回答

4

我有同樣的問題。 這是因爲bash在其他文件夾中散列了gcc。

run: hash gcc 

然後一切都應該順利。

+0

能否詳細解釋這個技巧? –

相關問題