2010-11-11 38 views
8

我使用的是與gcc 4.4.5版本一起提供的最新版本的Ubuntu。我需要重新編譯一個不是我編寫的程序,只能使用舊版本的gcc(如4.0)進行編譯。我設法配置這個較舊的版本,並在安裝過程中使用了一個前綴,這樣我的舊gcc版本就位於/opt/gcc-4.0.1/bin中。我試圖用ln -s /opt/gcc-4.0.1/bin/gcc gcc創建一個符號鏈接。但是當我調用gcc -v時,我仍然得到結果gcc version 4.4.5。爲了編譯已經帶有makefile的程序,如果我做make,它仍然使用新版本的gcc。我怎麼能告訴make使用舊版本?如何在Linux上使用2個不同版本的GCC Ubuntu並強制MAKE使用其中之一

回答

18

使用一些標準變量來確定要使用哪些工具,C編譯器變量稱爲「CC」。你可以直接在你的Makefile中設置CC變量,或者直接在你的Makefile中,如果你單獨使用它,或者每個人都有相同的設置,那麼你可以直接在你的Makefile中設置CC變量。或者,你可以通過它在命令行上像這樣:

make CC=/opt/gcc-4.0.1/bin/gcc 

第三個選項設置/opt/gcc-4.0.1/bin在你的路徑一切之前(這就是爲什麼它不工作你當前目錄不在路徑,所以搜索時,你放在那裏的符號鏈接將不被考慮)

export PATH=/opt/gcc-4.0.1/bin:$PATH 

爲了完整起見,在你的符號鏈接的解決方案,你就必須調用./gcc得到正確的海合會實例,但恕我直言,這可能不是最好的解決方案。

HTH

+1

如果OP被編譯包使用'configure'腳本,然後設置'CC'爲導出殼可變運行'configure'應該設置在它生成的'Makefile'之前。 – caf 2010-11-11 11:04:54

+1

使CC =/opt/gcc-4.0.1/bin/gcc完美工作,並且是更簡單的解決方案!謝謝 – blackLabrador 2010-11-12 02:18:31

相關問題