gcc源碼編譯

編譯是基於msys2平臺,使用的源碼是gcc-7.3.0-1.src.tar.gz

解壓後執行 makepkg --skippgpcheck會報錯,提示缺少依賴,根據錯誤提升安裝相關依賴

pacman -S mpc-devel gmp-devel mpfr-devel isl-devel

出現找不到cmp的命令需要安裝diffutils:

 pacman -S diffutils

繼續執行makepkg --skippgpcheck,接下來基本不會出現什麼難解決的錯誤,基本上是提示缺少什麼包就安裝什麼包。

有時候重新開始會出現一些奇怪的問題,這是因爲編譯目錄裏殘留着上次編譯的一些文件,把促使解壓目錄下的src文件夾刪掉重新來一次就好了。

我編譯時還出現無法將’gcc’ 移動至’stage1-gcc’: Permission denied,這個可能是開了多個sh和make進程,多核兼容上的問題導致gcc目錄被佔着從而無法重命名,目前還沒有解決方案,其他2臺電腦是好的,現在碰到只能重裝電腦了。
(我試了很多次都是這個問題,最後一次我修改PKGBUILD把調試符號打開支持debug竟然成功了,不確定是不是一定能解決)
在這裏插入圖片描述

gcc的入口函數在gcc.c和gcc-main.c裏,爲了測試下,在gcc.c文件裏添加一行打印
在這裏插入圖片描述
在gcc-7.3.0-1.src\gcc\src\build-i686\gcc或stage1-gcc重新編譯
make xgcc.exe
編譯好後執行cc
./xgcc.exe -v
在這裏插入圖片描述
可以看到最後的執行結果符合預期

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章