[英]Switch between different GCC versions
我最近構建了一個舊版本的GCC並將其安裝在我的主目錄(spec . ~/local/gcc-5.3.0
)中。 但是,我只需要這個編譯器用於CUDA項目,並且將在其余時間使用系統編譯器(GCC 6.2.1)。 所以,我想我需要找到一種在需要時和在需要時切換它們的方法,並且還可以更改庫並適當地包含路徑。
我知道update-alternatives
是這樣做的一種方法,但它似乎需要設置root權限,這是我沒有的。
下一個最好的事情可能是在.bashrc
中編寫一個shell函數來確保以下內容:
每個呼叫在系統和本地gcc之間切換
無論何時進行切換,它都會調整路徑,以便在選擇本地gcc時,它首先查找自己安裝的頭文件和庫,然后再查看/usr/local/include
或usr/local/lib
等系統路徑。 之前的回答表明修改LD_LIBRARY_PATH
應該足夠了,因為GCC安裝“知道”它自己的頭文件和靜態庫的位置(我不確定它是否正確,我以為我可能需要修改CPATH
等)。
以上是實現這一目標的最佳方法嗎? 如果是這樣,我在實現這樣的功能時應該設置哪些路徑?
以上是實現這一目標的最佳方法嗎? 如果是這樣,我在實現這樣的功能時應該設置哪些路徑?
正如其他人所指出的, PATH
和LD_LIBRARY_PATH
是強制性的。 您也可以更新MANPATH
以獲得完整性。
而不是重新發明.bashrc
的輪子我建議使用一些鮮為人知但非常方便和模塊化的環境模塊 ,專為此特定目的而設計。 你可以使用它們(一旦你為gcc / 3.1.1設置配置):
$ module load gcc/3.1.1
$ which gcc
/usr/local/gcc/3.1.1/linux/bin/gcc
$ module unload gcc
$ which gcc
gcc not found
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.