非root使用者安裝gcc 4 9 4

2021-07-29 03:52:35 字數 3757 閱讀 6650

tar -zxvf gcc-4.9

.4.tar

.gz

2)在編譯之前先在/home/jlu_guan/gcc-4.9.4下新建乙個資料夾存放編譯完成的檔案:

mkdir path/gcc_compile
3)進入解壓目錄:

cd gcc-4.9.4.
mkdir path/m4

cd m4-1.4

.17./configure --prefix=path/m4-1.4

.17 # 配置成功生成makefile檔案

make && make check && make install

安裝成功則m4路徑下會有lib檔案.

tar -xjf gmp-6.1.2.tar.bz2

cd gmp-6.1.2

./configure --prefix=path/gmp-6.1.2 cflags=-fpic cxxflags=-fpic # 配置成功生成makefile檔案

make -j8 # 多執行緒編譯.

make install

安裝成功則gmp-6.1.2路徑下會有lib檔案.

tar -zxvf mpfr-3.1.5.tar.gz

cd mpfr-3.1.5

./configure --prefix=path/mpfr-3.1.5 --with-gmp=path/gmp-6.1.2/ cflags=-fpic cxxflags=-fpic # 配置成功生成makefile檔案. 另外, mpfr安裝依賴於gmp, 所以在config時, 指定gmp的安裝路徑. 包括gmp的庫檔案和編譯生成的lib和include檔案.

make -j8

make install

安裝成功則mpfr-3.1.5路徑下會有lib檔案.

tar -zxvf mpc-1.0.3.tar.gz

cd mpc-1.0.3

./configure --prefix=path/mpc-1.0.3 --with-gmp=path/gmp-6.1.2/ --with-mpfr=path/mpfr-3.1.5/ cflags=-fpic cxxflags=-fpic # 配置成功生成makefile檔案. 另外, mpfr安裝依賴於gmp, mpfr, 所以在config時, 指定gmp和mpfr的安裝路徑. 包括gmp的庫檔案和編譯生成的lib和include檔案.

make -j8

make install

安裝成功則mpc路徑下會有lib檔案.

以上三個均加了共享引數選項cflags=-fpic cxxflags=-fpic.

4>安裝isl: 這是乙個可選庫. 根據gcc make需要看是否安裝. 一些設定在安裝時修改. 安裝同上.

5>安裝cloog: 這是乙個可選庫. 這是乙個可選庫. 根據gcc make需要看是否安裝. 一些設定在安裝時修改. 安裝同上.

6>安裝guile: 這是乙個可選庫. 這是乙個可選庫. 根據gcc make需要看是否安裝. 一些設定在安裝時修改. 安裝同上. 安裝autogen需要先安裝guile.

7>安裝autogen. 這是乙個可選庫. 根據gcc make需要看是否安裝. 一些設定在安裝時修改. 安裝同上.

安裝完畢gmp, mpfr, mpc三個庫之後. 要將庫檔案(lib路徑)寫入環境變數ld_library_path中. 否則在make的時候回出錯:

configure: error: cannot compute suffix of object files: cannot compile.

將庫檔案(lib路徑)寫入環境變數ld_library_path有兩個辦法, 一種是臨時環境變數, 在命令列輸入:

export ld_library_path=path/gmp-6.1

.2/lib:path/mpfr-3.1

.5/lib:path/mpc-1.0

.3/lib/:$ld_library_path

另外一種方法是修改.bashrc中的ld_library_path境變數來指定庫檔案(lib路徑)的路徑:

[~]$ vi .bashrc

export ld_library_path="$ld_library_path:path/gmp-6.1.2/lib:path/mpfr-3.1.5/lib:$path/mpc-1.0.3/lib/"

重啟shell或者source .bashrc即可生效.

5)配置gcc, 包括安裝路徑, 編譯語言等.

./configure --prefix=path/gcc_compile --enable-threads

=posix --disable-checking

--disable-multilib

--enable-plugin

--enable-lto

--enable-languages

=c,c++,fortran --

with

-gmp

=path/gmp-

6.1.2/--

with

-mpfr

=path/mpfr-

3.1.5/--

with

-mpc

=path/mpc-

1.0.3

/

配置成功生成makefile檔案. 在./config時, 要指定gmp, mpfr, mpc三個庫的原始檔, lib路徑, include路徑. 從gcc-4.9.4的configure檔案可以看出, –with-gmp=path 和 –with-gmp-lib=path/lib –with-gmp-include=path/include是等價的. (貌似不指定也行, 這裡不再實驗了)

–enable-plugin –enable-lto編譯安裝gcc, 安裝外掛程式plugin的選項.

make -j12 # 12個執行緒編譯, 這樣更快. 

make install

編譯成功後會在path/gcc_compile生成bin, lib, lib64等檔案. 其中bin檔案是可執行檔案(類似於快捷方式).

6)可以通過設定環境變數path指定gcc(4.9.4)和g++(4.9.4)的路徑:

export path=path/gcc_compile/bin/:$path
這樣在~下的任意路徑均可以使用gcc和g++. 這種方式設定的環境變數只是臨時變數, 可以通過修改

.bashrc中的path環境變數來指定gcc和g++的路徑:

vi .bashrc

在.bashrc加入export path=path/gcc_compile/bin/:$path,

重啟shell或者source .bashrc即可生效.

另外, 在最新的.bashrc中還新增了c_include_path, cplus_include_path均為gcc_compile的include路徑. 還有ld_library_path新增了gcc-4.9.4的lib和lib64. library_path新增了gcc-4.9.4的lib和lib64.

這樣在命令列輸入:

gcc -v 或 g++ -v 就可以顯示gcc或g++的版本資訊了, 而且還會顯示make時的配置資訊.

非root使用者如何安裝GCC

因工作需要,需要安裝libfuzzer庫,對專案做fuzz testing。libfuzzer作為clang llvm 的一部分,其編譯需要gcc 4.8.0以上版本的支援,因此需要在編譯伺服器上安裝4.8.0以上版本的gcc。由於沒有編譯伺服器的root許可權,因此需要將gcc安裝在使用者目錄下。...

非root許可權GCC安裝

檢視當前gcc版本 gcc versionwget ftp.gnu.org gnu gcc gcc 7.3.0 gcc 7.3.0.tar.gz解壓 tar zxvf gcc 7.3.0.tar.gz進入目錄 cd gcc 7.3.0檢測和安裝相關依賴包,直接執行gcc自帶的檔案 contrib d...

非root使用者安裝tmux

網上大多數是root使用者安裝tmux的方法 我是非root使用者,今天安裝成功了,所以做一下總結 主要參考 但是由於該文中版本不是最新,所以更新一下,而且,改文中有一處不對,在這裡糾正。wget wget wget2 解壓安裝包 tar xzvf tmux 2.9a.tar.gz tar xzvf...