久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

編譯安裝GCC 5.2.0

 gljin_cn 2016-09-19

原文  http://blog./note/install-gcc-5.2.0-from-source.html

記錄編譯GCC 5.2.0時(shí)遇到的問題和解決方法,,以備日后查詢。

平時(shí)使用的服務(wù)器是CentOS5,,自帶的gcc編譯器還是8年前發(fā)布的4.1.2版本,完全沒法寫C++11的代碼,,因?yàn)椴幌肷?jí)操作系統(tǒng),只好自己下載源碼編譯,。

安裝過程挺dan疼的,只好記錄下來,。

安裝依賴庫

GCC依賴于gmp 4.2+, mpfr 2.4+和mpc 0.8+,,這里直接下載安裝最新的版本。

為了省事,,所有的庫都直接裝到/usr/local目錄下的對(duì)應(yīng)目錄。

安裝gmp 6.0

wget https:///download/gmp/gmp-6.0.0a.tar.bz2
tar xvf gmp-6.0.0a.tar.bz2
cd gmp-6.0.0
./configure
make -j4
make install

安裝mpfr 3.1.3

mpfr依賴于gmp,。

wget http://www./mpfr-current/mpfr-3.1.3.tar.bz2
tar xvf mpfr-3.1.3.tar.bz2
cd mpfr-3.1.3
./configure --with-gmp-include=/usr/local/include     --with-gmp-lib=/usr/local/lib
make -j4
make install

安裝mpc 1.0.3

mpc依賴于gmp和mpfr,。

wget ftp://ftp./gnu/mpc/mpc-1.0.3.tar.gz
tar xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --with-mpfr-include=/usr/local/include     --with-mpfr-lib=/usr/local/lib     --with-gmp-include=/usr/local/include     --with-gmp-lib=/usr/local/lib
make -j4
make install

安裝GCC

編譯

建議先閱讀下官方的 安裝文檔 ,。

下載GCC并解壓,。

wget ftp://ftp./gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
tar xvf gcc-5.2.0.tar.bz2
cd gcc-5.2.0

先unset若干個(gè)系統(tǒng)變量,,以免出現(xiàn)某些宏找不到的情況,。

unset CPLUS_INCLUDE_PATH LIBRARY_PATH

配置GCC

./configure     --with-gmp-include=/usr/local/include     --with-gmp-lib=/usr/local/lib     --with-mpfr-include=/usr/local/include     --with-mpfr-lib=/usr/local/lib     --with-mpc-include=/usr/local/include     --with-mpc-lib=/usr/local/lib     --enable-languages=c,c++     --enable-threads=posix     --disable-multilib

詳細(xì)的配置項(xiàng)說明可參考 安裝文檔 ,,這里只編譯c和c++的編譯器,。

然后 make -j8 ,,啟用多線程編譯。

測(cè)試

先安裝dejagnu: yum install dejagnu ,。

然后運(yùn)行如下命令:

make -j8 check-gcc

查看測(cè)試結(jié)果:

./contrib/test_summary

安裝

如果編譯順利通過, make install 即可,。

gcc和g++默認(rèn)被安裝到 /usr/local/bin 目錄下,libgcc和libstdc++默認(rèn)被安裝到/usr/local/lib64 (x64),。

記得更下下動(dòng)態(tài)庫緩存。

ldconfig

可能遇到的問題

XXXX not defined

遇到某個(gè)宏沒有定義的情況,,先unset C_INCLUDE_PATH 再嘗試。

braced spec is invalid

很dan疼的一個(gè)問題,,搜遍了全網(wǎng)也沒見有比較正式的解決方案。目前看上去比較靠譜的方法可參考 這里 ,,具體操作就是手動(dòng)改一下某個(gè)specs文件。

我這里是 host-x86_64-unknown-linux-gnu/gcc/specs ,,把其中所有的%:sanitize(xxx) 改為 fsanitize=xxx 。

測(cè)試C++11

寫一個(gè)腦殘的cpp測(cè)試下新安裝的編譯器,。

#include <atomic>
#include <iostream>
using namespace std;

int main() {
    atomic<long long> num(1L << 14);
    cout << ++num << endl;
}

編譯并運(yùn)行:

/usr/local/bin/g++ -std=c++11 b.cpp -o b
LD_LIBRARY_PATH=/usr/local/lib64 ./b


--------------------------------------------------------------------------
編譯中的問題:
sudo gedit config.log  # 查看日志,,搜索"error"

# issue: configure: error: C++ compiler missing or inoperational
# 沒有C++編譯器
yum install gcc-c++

# issue: conftest.cpp:11:2: error: #error -static-libstdc++ not implemented
# 沒有C,,C++靜態(tài)庫
yum install glibc-static libstdc++-static -y
# 但報(bào)"No package libstdc++-static available",,即沒有-static-libstdc++源,問題仍存在,。
# "checking whether g++ accepts -static-libstdc++ -static-libgcc"時(shí)報(bào)出的,可忽略,。

# issue: conftest.c:10:25: error: isl/version.h: No such file or directory
# 沒有ISL
wget ftp://gcc./pub/gcc/infrastructure/isl-0.12.2.tar.bz2
tar jxvf isl-0.12.2.tar.bz2
cd isl-0.12.2; ./configure
make; make install
cd ..

# issue: ./conftest: error while loading shared libraries: libisl.so.10: cannot open shared object file: No such file or directory
# 在"/usr/local/lib"目錄下,怎么就它找不到,。加到"/etc/ld.so.conf"或用"LD_LIBRARY_PATH"。
vi /etc/ld.so.conf  # 添加"/usr/local/lib"
ldconfig  # 重建/etc/ld.so.cache
# 自問:于**Issue 1**里,,已經(jīng)單獨(dú)在"/etc/ld.so.conf.d"下建個(gè)"*.conf"添加過"/usr/local/lib",怎么沒效果呢,?
# 自答:之后安裝的ISL,,沒重新ldconfig,,所以找不到了,?當(dāng)時(shí)沒查,不能確認(rèn),。用以下命令:
strings /etc/ld.so.cache | grep libisl  # 查看
# 之后,刪除了"/etc/ld.so.conf"內(nèi)的添加,,也不再有該問題。

# issue: conftest.c:10:27: error: cloog/version.h: No such file or directory
# 沒有CLooG
wget ftp://gcc./pub/gcc/infrastructure/cloog-0.18.1.tar.gz
tar zxvf cloog-0.18.1.tar.gz
cd cloog-0.18.1; ./configure
make; make install
cd ..

# issue: conftest.c:15: error: 'choke' undeclared (first use in this function)
# "checking for version 0.17.0 of CLooG"失敗報(bào)出的,,沒問題,。

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多