Gcc
從前綴文件夾執行 gcc
我在 RHEL 6.7 上有一個使用者帳戶。內置的 gcc 不支持 c++11,所以我正在嘗試安裝我更新的 gcc。我已經執行 configure with
--prefix=$HOME/dependencies/gcc
,make
,make install
並更新了我的環境變數:declare -x LIBRARY_PATH="~/dependencies/gcc/lib64:$LIBRARY_PATH" declare -x PATH="~/dependencies/gcc/bin/:$PATH"
gcc -v
現在顯示更新的版本(4.9.4 或 5.5.0,我都嘗試過),並which gcc
顯示預期的輸出:[user@host ~]$ which gcc ~/dependencies/gcc/bin/gcc
問題如下:
[user@host ~]$ g++ -std=c++11 -o test test.cpp g++: error trying to exec 'cc1plus': execvp: No such file or directory [user@host ~]$ ~/dependencies/gcc/bin/g++ -std=c++11 -o test test.cpp [user@host ~]$
我想知道為什麼我必須給出 g++ 的完整路徑才能完成這項工作。我無法使用 進行調試
strace
,因為從strace g++
執行版本/usr/bin
。有任何想法嗎?在按照 Knud Larsen 的建議添加符號連結後進行更新
strace strace g++55
,我執行並註意到這一行:stat("~/dependencies/gcc/bin/g++55", 0x7ffcf17f9530) = -1 ENOENT (No such file or directory)
替換
~
inPATH
和LIBRARY_PATH
with後/home/user
,一切正常。
引用時不擴展波浪號。改為使用實變數
$HOME
。個人意見:在命令行中自由使用波浪號(注意不要在引號中展開),但使用
$HOME
的是腳本。