在centos7下安裝gcc9.3的一點感悟

姚泡泡發表於2020-12-28

只是安個最新版gcc,沒想到經歷了痛苦的過程,好在終於安上了。。。

第一個遇到的問題是提示不存在<bits/c++config>,在/usr中查詢發現某個資料夾是有這個標頭檔案的,而且通過gcc命令知道該資料夾也在gcc的包含路徑中,但是為什麼硬是提示找不到沒有弄明白,解決完全是碰巧把這個資料夾下的標頭檔案cp到了gcc安裝資料夾的include目錄下,之後居然不報錯了。。。
第二個遇到的問題是提示include中的basename導致string.h中舊的定義混淆,原先我嘗試了把/usr/include/string,h中的basename註釋,結果之後又提示函式再次宣告混淆,於是嘗試註釋include中報錯檔案的相應行,居然解決了。。。
第三個問題提示/usr/lib64找不到gmp_init,我是安了gmp的,於是我猜測是/usr/lib64中的libgmp.so不是剛安的gmp,/usr/lib中才是,且連結時先找/usr/lib64,於是我將/usr/lib64中的libgpm.so改名,解決
第四個問題,下載的資料夾沒有go語言的支援原始檔,因此configure中不能有go語言,我的configure:
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux --disable-multilib --with-default-libstdcxx-abi=gcc4-compatible --with-abi=m64 --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --with-target-system-zlib --enable-objc-gc=auto --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --without-included-gettext

編譯了很久後才完成,gcc版本總算對了

我安裝的過程可謂一波三折,問題也都是碰巧解決的,網上甚至找不到答案,我認為可見軟體的發行做好文件是多麼重要,IT行業最大的痛苦就是資訊不對稱性,學習嵌入式還是網路的朋友都有體會,黑話特別多,即老手能聽懂的話新手硬是聽不明白,因為老手認為的已知和新手是不同的,開發軟體也是一個道理,文件一定要用心寫,安裝程式也要考慮多平臺適配,應該從使用者的角度出發思考程式的效果,比如這個gcc如果安的這麼惱火,centos7上大部分人都情願用源預設的4.8.5了,沒人願意費勁安新版,這樣明明軟體大體上是可以用的,應為做不好文件和考慮不全面而基本不能使用了。

相關文章