ubuntu16.04編譯gcc-5.4.0原始碼
本文內容參考多個部落格,記錄比較隨意,僅作為個人筆記檢視。
簡介:
由於要移植gcc,所以不得已只能做如此似乎多此一舉的實驗。。
我的系統軟體版本情況如下(供參考):
ubuntu 16.04
gcc-5.4.0
目的:編譯gcc-5.4.0
1.獲取程式碼及新建目錄
1.1下載
gcc官網所提供資源映象
1.2解壓
1.3 建立目錄
假設你解壓到的目錄為: ~/home/hwh/gcc-4.2.3,那麼我們就用${srcdir}表示它。
我們同時需要建立一個目標目錄${objdir}用來存放編譯結果的地方,GCC建議編譯後的檔案不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是${srcdir}的子目錄。我們這裡在建立一個objdir為: ~/home/hwh/gcc-4.2.3obj
同時我們還需要建立一個安裝目錄,就是防止編譯後的標頭檔案,庫檔案,和可執行檔案。
一般為/usr/local/gcc-5.4.0
然而我直接建立在/home/ren/program裡,只是測試
最終我們有3個目錄
${srcdir} /home/ren/program/gcc-5 原始碼解壓後的目錄
${objdir} /home/ren/program/gcc-build 自己新建的用於存放編譯結果的目錄,以後的操作都在這個目錄裡面
${destdir} /home/ren/program/gcc-dst 用來安裝編譯結果的目錄
3. 安裝依賴庫及相關軟體
$ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo
上面我安裝了常規需要依賴的庫,但在編譯時有些錯誤,所以後來又安裝了一些庫
還需要另外三個庫才能成功編輯 gcc,這三個庫分別是:mpc, mpfr 和 gmp,編譯安裝到gcc-dst或在編譯gcc時用引數指明路徑(我採用)
安裝參考如下步驟:
====================================================================================
開啟終端進入上述幾個檔案所在的目錄:
1 2 |
cd
~
cd
Downloads
|
我們先開始編譯 gmp 庫
?1 2 3 4 5 |
cd
gmp*
mkdir
build && cd
build
.. /configure
--prefix= /usr/gcc_4_7
--build=x86_64-linux-gnu
make
sudo
make
install
|
幾分鐘後你將有一個已編譯好和安裝好的 gmp 庫,如果一切順利,恭喜你!
使用相同的步驟來編譯 MPFR:
?1 2 3 4 5 6 7 |
cd
..
cd
..
cd
mpfr*
mkdir
build && cd
build
.. /configure
--build=x86_64-linux-gnu --prefix= /usr/gcc_4_7
--with-gmp= /usr/gcc_4_7
make
sudo
make
install
|
緊接著是 MPC:
?1 2 3 4 5 6 7 |
cd
..
cd
..
cd
mpc*
mkdir
build && cd
build
.. /configure
--build=x86_64-linux-gnu --prefix= /usr/gcc_4_7
--with-gmp= /usr/gcc_4_7
--with-mpfr= /usr/gcc_4_7
make
sudo
make
install
|
====================================================================================
4. 為標頭檔案以及所需庫新增連結
以下作為參考,反正我做了這一步,不知道有何卵用
新增如下連結, 這取決於你的 Ubuntu 系統架構, 如果你使用的是64位的ubuntu系統應當使用x86_64-Linux-gnu
替代i386-linux-gnu
- $ cd /usr/include
- $ sudo ln -s i386-linux-gnu/bits bits
- $ sudo ln -s i386-linux-gnu/gnu gnu
- $ sudo ln -s i386-linux-gnu/sys sys
- $ sudo ln -s i386-linux-gnu/asm asm
- $ cd /usr/lib
- $ sudo ln -s i386-linux-gnu/crt1.o crt1.o
- $ sudo ln -s i386-linux-gnu/crti.o crti.o
- $ sudo ln -s i386-linux-gnu/crtn.o crtn.o
[這裡需要了解一下ln -s 的語法:
sudo ln -s 原始檔 目標檔案
當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,
我們只要在某個固定的目錄放上該檔案,然後在其它的目錄下用ln命令連結(link)它就可以,不必重複的佔用磁
盤空間。
]
5. 配置
配置的目的是決定將GCC編譯器安裝到什麼地方(${destdir}),支援什麼語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。
配置是通過執行${srcdir}下的configure來完成的。其命令格式為(記得用你的真實路徑替換${destdir}):
命令格式為:
[cpp] view plain copy print?- % ${srcdir}/configure --prefix=${destdir} [其它選項]
但是其他選項如此多,怎麼辦?
我參考了系統自帶gcc-4.6.3的編譯引數(使用gcc -v檢視),然後將不相關的配置選項都刪除了。
最終我的配置為:
../gcc-5.4.0/configure --prefix=/home/ren/program/gcc-dst --enable-threads=posix --disable-checking --enable--long-long --with-system-zlib --enable-languages=c,c++ --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-gmp=/usr/gcc_4_8
--with-mpfr=/usr/gcc_4_8 --with-mpc=/usr/gcc_4_8
6. 編譯
命令:
[cpp] view plain copy print?- $ make
晚上每個人編譯的錯誤情況都不相同,我就將我所遇到的錯誤及解決辦法帖出來,供大家參考。
我遇到的問題類似,這幾個問題很有參考價值
問題:
a. 錯誤碼:"Java/jcf-io.c: cann't find zlib.h"?
[Method]: 將/gcc-4.2.3/gcc/java下的jcf-io.c中的#include "zlib.h"
修改為#include "../../zlib/zlib.h"
b. 錯誤碼:"/usr/bin/ld: cannot find -lz"?
[Method]: 安裝zlib-dev這個包,線上安裝命令為:apt-get install zlib1g-dev。
c. 錯誤碼:"xgcc: java/parse-scan.c: No such file or directory"?
[Method]:
<1>安裝bison: sudo apt-get install bison
<2>進入gcc-4.2.3/gcc/java目錄,因該目錄有parse-scan.y
執行bison -t -o parse-scan.c parse-scan.y
以下作為參考,抄襲其他博主
=================================================
7. 安裝
相關推薦
ubuntu16.04編譯gcc-5.4.0原始碼
本文內容參考多個部落格,記錄比較隨意,僅作為個人筆記檢視。 簡介: 由於要移植gcc,所以不得已只能做如此似乎多此一舉的實驗。。 我的系統軟體版本情況如下(供參考): ubuntu 16.04 gcc-5.4.0 目的:編譯gcc-5.4.0 1.獲取程
Ubuntu18.04安裝arm-linux-gcc交叉編譯工具(附arm-linux-gcc 5.4.0包)
一、下載arm-linux-gcc 5.4.0包 下載(百度雲)連結:https://pan.baidu.com/s/1AeqzkboWkJDJjU9HxtXhrA 提取碼:uzup ------------------------------------------
centos7 編譯安裝gcc-5.4.0
一、安裝開發必備環境: yum groupinstall "Development Tools" yum install glibc-static libstdc++-static 二、編譯安裝gcc-5.4.0 你可以到官網下載gcc,也可以直接在這裡下載:http://ftp.tsukuba.wid
Linux 下編譯安裝 gcc 5.4.0
以 gcc 5.4.0 版本為例,介紹用原始碼來編譯安裝 gcc 的方法 一、安裝 gcc 1、解壓縮 把 gcc-5.4.0.tar.gz 拷貝到系統中的某個目錄,比如 /usr/local/src,並解壓到此目錄: tar zxf gcc-5.4.0.tar
【深度學習】ubuntu16.04下安裝opencv3.4.0
form 線程 ubunt con sudo ive tbb 依賴包 復制代碼 1、首先安裝一些編譯工具 # 安裝編譯工具 sudo apt-get install build-essential # 安裝依賴包 sudo apt-get install cmake
Ubuntu16.04安裝Maven3.5.4
本篇教程在示例步驟中使用了以下版本的軟體。操作時,請您以實際軟體版本為準。 作業系統:Ubuntu 16.04.3 LTS Maven 版本:Apache Maven 3.5.4 JDK 版本:JDK 1.8.0_65 Tomcat 版本:Apache Tomcat 7.0.47
ubuntu16.04 安裝gcc 7.3.0
我嘗試過用編譯的方法,比較麻煩,所以我找到下面的方法,直接從工具鏈源裡安裝: sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-
Ubuntu16.04編譯opencv3.1 CUDA9.0
2.修改cmake資料夾中的FindCUDA.cmake檔案; (1)查詢“unset(CUDA_nppi_LIBRARY CACHE)”; 替換為: unset(CUDA_nppial_LIBRARY CACHE) unset(CUDA_nppicc_LI
CentOS6.9完全離線升級安裝gcc-5.4.0
1、準備工作 上面三個依賴包的版本依據,可以將gcc-5.4.0.tar.gz解壓後在gcc-5.4.0/contrib/download_prerequisites檔案中找到 2、安裝gmp-4.3.2 /** 解壓 */ tar
Ubuntu GCC 5.4.0 降級GCC 5.3.0
Ubuntu16.04 集成了GCC 5.4.0, 但是很多軟體不支援這麼高版本的GCC。本文提供一個把GCC 5.4.0 降級到GCC 5.3.0 的辦法。 1.先檢視你是否需要降級GCC gcc -v 如果你的版本是5.3.1以下的就不用降級
ubuntu12.04 編譯 ics android 4.0.4 日誌 ,出出錯
安裝完官方說明的的包,還會出錯。 編譯 一次需要74+分鐘, 提示資訊 host SharedLib: lib64EGL_translator (out/host/linux-x86/obj/lib/lib64EGL_translator.so) /usr/bin/ld:
保姆級教程——Ubuntu16.04 Server下深度學習環境搭建:安裝CUDA8.0,cuDNN6.0,Bazel0.5.4,原始碼編譯安裝TensorFlow1.4.0(GPU版)
寫在前面 本文敘述了在Ubuntu16.04 Server下安裝CUDA8.0,cuDNN6.0以及原始碼編譯安裝TensorFlow1.4.0(GPU版)的親身經歷,包括遇到的問題及解決辦法,也有一些自己的經驗,希望能對讀者有所幫助。期間參考了許多前人的文章,後文會一一附上鍊接,在此先行謝過。在下能力有限,
轉:ubuntu16.04(32位)gcc 5.2.0去編譯mg-samples-3.0.12問題
用gcc 5.2.0去編譯mg-samples-3.0.12,報錯: …/lib/libminigui_ths.so: undefined reference to WndClientRect' .../lib/libminigui_ths.so:
Ubuntu16.04編譯android6.0原始碼
2016-08-25 因為最近經常編譯android,每次都要去網上搜索教程,這裡把自己編譯的步驟記錄下來,方便以後查詢。 原始碼下載 安裝git 安裝好了後配置下使用者名稱和郵箱地址。 1 2 3 $ sudo apt-get install git
ubuntu16.04編譯opencv3.4.1和contrib遇到的錯誤及解決方法
Cmake error at opencv_contrib-master/modules/datasets/CMakeLists.txt:5 (ocv_append_source_files_cxx_compiler_options): Unknown CMake command "ocv_
DragonFly BSD 5.4.0 釋出,預設使用 GCC 8.0
DragonFly BSD 5.4.0 已釋出,DragonFly BSD 是一個以與 FreeBSD、NetBSD、OpenBSD 採用的實現方式不同的方式來實現併發、SMP、叢集以及其他作業系統特性的 BSD 分支。 5.4.0 版本現在附帶 GCC 8.0,並作為預
ubuntu16.04編譯安裝mysql原始碼
轉自:https://blog.csdn.net/Touatou/article/details/79601104 虛擬機器安裝:VirtualBox-5.2.0-118431-Win.exe,下載地址:http://cn.ubuntu.com/download/
Ubuntu 16.04編譯Opencv 3.4 (For python2.7 and python3.5)
相關依賴庫的安裝: apt install python-pip python3-pip pip2 install numpy pip3 install numpy 【上面兩步可以apt安裝更快 apt install python-numpy python3-nump
基於CentOS6.4環境編譯Spark-2.1.0原始碼
基於CentOS6.4環境編譯Spark-2.1.0原始碼 1 寫在前面的話 有些小夥伴可能會問:Spark官網不是已經提供了Spark針對不同版本的安裝包了嗎,我們為什麼還需要對Spark原始碼進行編譯呢?針對這個問題我們到Spark官網: spark.a
ubuntu16.04環境中vivado2017.4的交叉編譯工具
csdn當日記了...之前一直用分別編譯u-boot、核心,再製作映象,非常麻煩後來發現xilinx官方的petalinux把這些東西都整合了,並且提供了一種圖形化的設定介面,可以根據自己的要求裁剪核心。vivado2015.4在加入Debug訊號後一直卡在一個地方,無法生產