簡體   English   中英

在不同的GCC版本之間切換

[英]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/includeusr/local/lib等系統路徑。 之前的回答表明修改LD_LIBRARY_PATH應該足夠了,因為GCC安裝“知道”它自己的頭文件和靜態庫的位置(我不確定它是否正確,我以為我可能需要修改CPATH等)。

以上是實現這一目標的最佳方法嗎? 如果是這樣,我在實現這樣的功能時應該設置哪些路徑?

以上是實現這一目標的最佳方法嗎? 如果是這樣,我在實現這樣的功能時應該設置哪些路徑?

正如其他人所指出的, PATHLD_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM