Gcc 安裝過程中部分配置

2022-06-24 23:06:20 字數 1563 閱讀 4205

gcc 安裝過程中部分配置詳解

解壓gcc原始碼後,需要進行configure,這時候一般命令如下:

srcdir/configure [options] [target]

你可以執行以下命令獲得自己需要的options。

configure –help

target預設是自己的本機環境,如果是交叉編譯器,就需要指定這個引數了

--target=target

這個target一半是你m68k-coff,mk68k-linux-elf這樣的格式,其中mk68-linux-elf是用在嵌入式linux中的格式,我曾經使用過mips-linux-bin的格式,一般是指定cpu型別,而進行的檔案格式,甚至os環境。

同時還有一些附加的options,比如:

--prefix=dir 這個是指定你安裝的目錄,如果需要安裝多個版本的gcc時,非常有用

--with-gmp 是gnu多精度庫

--with-mpfr mpfr和gmp是配合,編譯gcc的時候同時需要gmp和mpfr。

--with-ppl  是啟用graphite迴圈優化

--with-cloog 是和上邊配合的乙個引數

--enable-language=c++ 用逗號隔開,可以指定編譯支援的語言,不在列表的語言不支援,這樣可以減少編譯時間

--disable-bootstrap 如果你確定自己的**沒問題,不用編譯3遍,或者是你是gcc**的除錯者,不想等待那漫長的編譯時間,可以把bootstrap禁用,這樣就只編譯一遍。

如果需要構建交叉編譯器,那麼—host 和 –target可能是必須的

還有一些構建的選項

一般人使用的make選項,這是使用單執行緒序列編譯,一般需要幾個小時。這個時候為了加快編譯速度可以使用

make –jn  n是系統支援的執行緒數

這個時候建議首先檢視cpu的個數(cat /proc/cpuinfo),和cpu每個核心支援的執行緒數,可以加快編譯。

說一點構建的事情,構建 gcc 要編譯 3 遍,每一遍都構建一套完整的 gcc 二進位制檔案。如果已經有 binutils 就不再構建,如果沒有,需要先構建 binutils ,這個需要把 binutils 的**放在 gcc **的頂層目錄中,並在 configure的時候指定。構建 gcc 的時候有個叫作 bootstrap 的名詞,意思就是編譯一遍並且編譯出來二進位制檔案。

比較第二遍和和第三遍的二進位制檔案是否相同。因為第一遍用本機的編譯器構建出來乙個 gcc ,先叫其 gcc1 ,這個 gcc1 不知道是否正確,再用 gcc1 編譯出來 gcc2,如果能編譯出來 gcc2 就說明 gcc1 是可以用的,gcc2 便是我們想得到「最終版本」了,可以還要用 gcc2 再去構建gcc3 ,然後比較 gcc2 和 gcc3 是否完全一樣,這是為了防止有人在編譯器裡面放後門。

為第三遍的二進位制檔案構建執行時庫。

如果硬碟空間實在不足,可以使用make bootstrap-lean

來刪除第一遍和第二遍不用的obj

當然,你也可是使用以下指令來增加編譯次數。

make boostarp4

openstack安裝過程中keystone的問題

在裝控制節點時,遇到了很多的問題,然後糾結了好幾天,查google,問其他人 這裡推薦乙個qq群 openstack中國社群部署群145923072 推倒了重灌,終於算把keystone這關給過了。羅列幾個問題 這個都是拒絕連線,應該都是配置檔案裡面賬戶密碼搞錯了,導致連線不了keystone資料庫...

anaconda安裝過程中yum錯誤

trackback most recent call first file usr lib python2.4 site packages yum repos.py line 295,in setattribute set attr self,key,value file tmp treedir.4...

cp abe安裝過程中的問題

在ubuntu在安裝cp abe的過程中往往會遇到很多問題,由於cpabe庫依賴於其他很多庫,例如gmp pbc glib openssl libbswabe庫等。在安裝的過程中會出現這樣的錯誤 the library libbswabe was not found on your system p...