Linux
使用 GCC v4.9.2 編譯節點
我似乎無法在 CentOS 6.6(64 位)GCC v4.9.2 上編譯 Node.js
$ ./configure Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix.
更多細節:
$ which gcc /usr/bin/gcc $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-current/configure --enable-languages=c,c++,fortran --enable-multilib --prefix=/usr/local/gcc Thread model: posix gcc version 4.9.2 (GCC) $ which python /usr/bin/python $ python --version Python 2.6.6
我試圖設置CC ..
$ CC="/usr/local/gcc/bin/gcc" $ set | grep CC CC=/usr/local/gcc/bin/gcc
但它會導致同樣的錯誤。
有任何想法嗎?
編輯 1 - 邁克爾的問題
系統提出的編譯器發生了什麼變化?
我在 中安裝了更新版本的編譯器(v4.9.2)
/usr/local/gcc
,並刪除了原始編譯器(v4.4.7)並嘗試以這種方式替換它:yum remove -y gcc gcc-c++ cpp sudo mv /usr/bin/g++ /usr/bin/g++_old sudo mv /usr/bin/c++ /usr/bin/c++_old sudo ln -s -f /usr/local/gcc/bin/gcc /usr/bin/gcc sudo ln -s -f /usr/local/gcc/bin/g++ /usr/bin/g++ sudo ln -s -f /usr/local/gcc/bin/c++ /usr/bin/c++ sudo ln -s -f /usr/local/gcc/bin/cpp /usr/bin/cpp sudo ln -s -f /usr/local/gcc/bin/gfortran /usr/bin/gfortran sudo ln -s -f /usr/local/gcc/bin/gcov /usr/bin/gcov sudo cp /usr/local/gcc/lib64/libstdc++.so.6.0.20 /usr/lib64/. sudo mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak sudo ln -s -f /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6
我這樣做是因為我在這個需要最新編譯器的系統上安裝 HHVM 。
該編譯器設置可能適用於 hhvm,但對於其他任何東西都毫無用處。在同一個系統上擁有兩個 gcc 版本是相當困難的。你可以做一些事情,比如使用軟體集合,但我個人不喜歡那些,因為它們不是很容易使用。
無論如何,你應該使用 CentOS 7,因為它不需要你更換編譯器,而且會有更多的東西是最新的。總體而言,基於 C7 的系統幾乎可以解決您的所有問題,並且更具未來性。