我最近構建了一個較舊版本的GCC,並將其安裝在我的主目錄(規格~/local/gcc-5.3.0
)中。但是,我只需要該編譯器用於CUDA項目,並且將在其餘時間使用系統編譯器(GCC 6.2.1)。所以,我想我需要找到一種方法在需要時切換它們,並以一種方式改變庫並適當地包含路徑。在不同的GCC版本之間切換
據我所知,update-alternatives
是這樣做的一種方式,但它似乎需要設置根權限,我沒有。
下一個最好的事情可能是寫一個shell功能.bashrc
確保以下幾點:
系統和地方GCC
之間的每個電話交換機每當一個開關後,它會調整這樣當選擇本地gcc時,它首先查找在查看系統路徑(如
/usr/local/include
或usr/local/lib
)之前自行安裝的頭文件和庫。之前的answer建議修改LD_LIBRARY_PATH
應該足夠了,因爲GCC安裝「知道」它自己的頭文件和靜態庫在哪裏(我不確定它是否正確,我想我可能需要修改CPATH
等)。
以上是實現此目的的最佳方法嗎?如果是這樣,我應該在實現這樣的功能時設置什麼路徑?
我個人的做法,這是不是很複雜的:我有一個shell腳本,只是增加了CUDA bin目錄和匹配gcc bin目錄到$ PATH。其實我有多個腳本來保持不同的CUDA版本。當我停止使用CUDA或想切換到其他版本時,我打開一個新的shell。 – tera
你提到只給gcc添加'bin'目錄到'PATH'。如果不是include目錄,是不是也需要修改'LD_LIBRARY_PATH'? – rahul1210
nvcc和gcc都知道它們的庫位於何處,所以只需更改$ PATH就足夠了。 – tera