當前位置:首頁 » 編程軟體 » gcc鏈接腳本

gcc鏈接腳本

發布時間: 2024-07-22 00:35:44

A. centos7怎麼編譯安裝gcc-c++

方法/步驟
1
yum install glibc-static libstdc++-static -y
安裝c和c++的靜態庫(據說如果系統中缺少libc.a和libstdc++.a編譯時會出錯,但是我沒有那麼多閑情逸致去試,實踐過的朋友可以回復一下,分享一下經驗,讓大家都長長見識)

2
下載解壓gcc,我的gcc目錄是gcc-4.8.0
3
進入gcc目錄,執行:
./contrib/download_prerequisites
這個神奇的腳本文件會幫我們下載、配置、安裝那三個依賴的庫。可以節約我們大量的時間和精力。
4
你以為這三個庫自動下載了、自動make install了就沒事了嗎?錯!
很多人在編譯gcc的時候出現各種奇奇怪怪的錯誤就是這步沒有做好。
它們還不在.so文件的搜索路徑裡面,需要加進去,最後切記切記一定要執行一下ldconfig。
大致做法為:
1,找到你的共享庫文件被install到哪個目錄了(updatedb+locate命令)。
2,如果你的庫不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享庫的路徑
3,如果在2中添加了共享庫路徑,切記要執行一下ldconfig,更新響應cache文件讓系統能找到你的共享庫。
5
建立臨時目錄,這個目錄用以存放編譯時的大量臨時文件,是文檔要求中必須的。
我是在gcc-4.8.0下建立了一個名為gcc-build-4.8.0的目錄,進入它。
mkdir gcc-build-4.8.0
cd gcc-build-4.8.0
配置gcc編譯選項
6
強烈建議閱讀INSTALL目錄下的說明文檔,尤其是configure.html,以確定你的編譯選項。
比較基本的選項有--enable-languages,說明你要讓你的gcc支持那些語言,--disable-multilib不生成編譯為其他平台可執行代碼的交叉編譯器。--disable-checking生成的編譯器在編譯過程中不做額外檢查,也可以使用--enable-checking=xxx來增加一些檢查。
網上還說了什麼--with-gmp、--with-mpfr、--with-mpc這三個選項,但是如果你3,4步做好了,就不要配了,反之你還是老實點吧別抱僥幸心理了。
調用gcc-4.8.0目錄下的configure文件:
例如:
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
7
執行
../make #不解釋

執行編譯命令(#在8核的虛擬機上進行編譯,每個核分配2個編譯任務)
make -j16
make install編譯過程CPU 核基本100%佔用,整個編譯用時11分50秒。
檢查gcc版本

#你就等吧少年,建議晚上睡覺前做
當然上面三步一定要在前一步順利結束的情況下進行,如果哪一步出錯了,結果都顯示error了,就不要再做後面的了。在shell的輸出里搜索"error"看具體的出錯點是什麼,、google一下為什麼。
如果你求穩的話,可以在make install之前先make check一下。

B. 鍦↙INUX緋葷粺涓緙栫▼搴忥紝makefile鏄鎬庝箞鐢熸垚鐨勶紝鏄閫氳繃GCC鎴朑DB緙栬瘧鑱旀帴鐢熸垚鐨勫悧錛燂紵錛燂紵

榪欎綅鏈嬪弸鎴戠湅鏄鏈夌偣璇瑙d簡makefile鐨勫仛鐢ㄣ俶akefile 鏄涓涓鑴氭湰錛岀敱浠栨潵鎺у埗緙栬瘧鍑虹殑紼嬪簭鐨勭増鏈銆傚綋浣犳敼鍐欎簡鍘熸枃浠跺悗錛岄氳繃makefile 鏉ユ鏌ヤ緷璧栧叧緋伙紝鏉ョ敓鎴愭渶緇堢殑鏂囦歡銆傛瘮濡備竴涓紼嬪簭鍙玜 浠栫殑婧愮爜鍙玜.c

a.c 鍙堢敤鍒板ご鏂囦歡a.h 錛宎.h鏄1.h鍜2.h鐢熸垚鐨

濡傛灉浣犳敼鍐欎簡1.h錛岄氳繃緙栧啓makefile鏂囦歡銆俶ake鏃朵細璋冪敤makefile鏉ヤ緷姝ゆ寜渚濊禆鍏崇郴鐢熸垚鏈鍚庣殑a

鎵浠ヨ寸紪璇戞椂紼嬪簭騫朵笉鐭ラ亾鐢熸垚a閮界敤鍒頒粈涔堛傛庝箞鍙鑳借嚜宸辯敓鎴愬憿銆

makefile鏄瑕佷綘鑷宸辯紪鍐欑殑錛屾潵鍛婅瘔make鏉ュ備綍緙栬瘧銆俶ake宸ュ叿灝辯浉褰撲簬涓涓鑴氭湰銆

C. 濡備綍鍦 Mac OS X 涓嬬法璀錛屽畨瑁 gcc

涓銆丮ac OS X涓璵ake鍜実cc鍛戒護鐨勫畨瑁
鍦ㄧ紪璇慙ua鍓嶉渶瑕佸仛鐨勫噯澶囧伐浣溿
鎴戝皢lua-5.2.2.tar.gz涓嬭澆鍒拌嫻鏋滅數鑴戜腑錛岃В鍘嬪悗榪涜岀紪璇戞椂錛屽彂鐜版垜鐨凪ac OS X 娌℃湁mak鍛戒護錛屼篃娌℃湁gcc鍛戒護銆
媯嫻嬭嫻鏋滅數鑴戠殑Mac OS X涓鏄鍚︽湁make鍛戒護鐨勬柟娉曪紝鍙鍦ㄦ帶鍒跺彴閿鍏ュ懡浠わ細which make
濡傛灉鏈夎ュ懡浠わ紝鍒欎細榪斿洖鎻愮ず錛/usr/bin/make
鎵浠ユ垜闇瑕佸湪Mac OS X涓瀹夎卪ak鍛戒護鍜実cc浣垮懡浠ゃ傚畨瑁呭伐鍏峰寘闇瑕佷粠鑻規灉鐨勫紑鍙戠綉絝欎笅杞姐
涓嬭澆鏂規硶錛
鎵撳紑Xcode錛岃彍鍗昘code --> Open Developer Tool -->More Developer Tools
榪欐椂Safari嫻忚堝櫒琚榪愯岋紝騫跺脊鍑烘敞鍐屽硅瘽妗嗭紝瑕佹眰杈撳叆Apple ID鍜屽瘑鐮侊紝濉鍐欏畬娉ㄥ唽淇℃伅鐒跺悗榪涘叆Apple Developer鐨勪笅杞界珯鐐癸紝鎼滅儲鈥淯nix鈥濓紝緇撴灉浼氬垪鍑哄懡浠ゅ伐鍏峰寘鐨勪笅杞藉垪琛錛
Command Line Tools 錛圤S X Mountain Lion錛塮or Xcode - April 2013 錛堣繖涓鐗堟湰闇瑕乆code 4.6.2 鍜 Mac OS X 10.8浠ヤ笂鐗堟湰錛
Command Line Tools 錛圤S X Lion錛塮or Xcode - April 2013 錛堣繖涓鐗堟湰闇瑕乆code 4.6.2 鍜 Mac OS X 10.7.4浠ヤ笂鐗堟湰錛
鈥︹
涓嬮潰榪樻湁鍏跺畠鐗堟湰錛岃窡鎹浣犱嬌鐢ㄧ殑Mac OS X鐨勭増鏉ヤ笅杞姐傚彟澶栬翠竴涓嬶細
Mac OS X 10.4.x錛屼唬鍙蜂負錛歀ion
Mac OS X 10.8.x錛屼唬鍙蜂負錛歁ountain Lion
鎴戠殑Mac OS X鏄疢ountain Lion錛屾墍浠ヤ笅杞界殑鏄疌ommand Line Tools 錛圤S X Mountain Lion錛塮or Xcode - April 2013 鐗堟湰錛屾枃浠跺悕涓猴細
xcode462_cltools_10_86938259a.dmg
涓嬭澆瀹屽悗鍙屽嚮璇ユ枃浠躲傝繃涓浼氬効鍚庯紝浼氬脊鍑哄畨瑁呭寘鐨勭獥鍙o紝瀵瑰弻鍑誨畨瑁呭寘杞榪呫傛寜鎻愮ず瀹屾垚瀹夎呫傝繖鏃秏ake鍜実cc渚挎湁浜嗐
鍙浣跨敤which鍛戒護榪涜屾鏌ャ
浜屻佺紪璇慙ua杞浠
緙栬瘧鍜屽畨瑁呯楁愭粦鏂規硶鐨勮︾粏璇存槑鍦╮eadme鏂囦歡涓錛歭ua-5.2.2/doc/readme.html
鍦ㄧ紪璇戝墠鏈濂借繘琛岀紪璇戞祴璇曪紝鍦╨ua-5.2.2鐩褰曚笅錛屼嬌鐢ㄥ懡浠ゅ備笅錛歮ake test
鎴戠殑緙栬瘧鍜屽畨瑁呮柟娉曟槸錛
sudo make macosx install 錛坰udo鍦∕ac OS X涓琛ㄧず浣跨敤瓚呯駭鐢ㄦ埛鏉冮檺錛
娉ㄦ剰錛
Lua鐨勭紪璇戝拰瀹夎呰存槑鏂囨。錛坮eadme.html錛変腑鎸囧嚭錛岀紪璇慙ua鏃訛紝闇瑕侀夋嫨瑕佽繍琛岀殑鎿嶄綔緋葷粺錛岀紪璇戝苟瀹夎呯殑鏍煎紡濡備笅錛
make xxx install 錛堝傛灉涓嶆槸瓚呯駭鐢ㄦ埛鐧誨綍錛屽垯闇瑕佸墠闈㈠姞sudo鍛戒護錛
鍏朵腑xxx琛ㄧず鐩鏍囨搷浣滅郴緇熺殑鏍囪幫紝鐩鏍囨搷浣滅郴緇熺殑鏍囪板垪琛ㄥ備笅錛
aix ansi bsd freebsd generic linux macosx mingw posix solaris
Lua 灝嗛粯璁ゅ畨瑁呭埌 /usr/local/錛屽畨瑁呭畬鎴愬悗錛屽湪璇ョ洰褰曚笅浼氱敓鎴愪竴浜涢噸瑕佹枃浠躲
/usr/local/ bin: 錛堝彲榪愯岀▼搴忥級
lua luac 錛坙ua鏄疞ua璇璦鐨勮В閲婂櫒錛宭uacLua璇璦鐨勭紪璇戝櫒錛
/usr/local/ include: 錛堝ご鏂囦歡錛
lua.h luaconf.h lualib.h lauxlib.h lua.hpp
/usr/local/lib: 錛堝簱鏂囦歡錛
liblua.a
/usr/local/ man/man1: 錛堝懡浠ゆ墜鍐岋級
lua.1 luac.1
Lua 瑙i噴鍣ㄥ畬鏁寸殑璺寰勬槸 /usr/local/bin/lua錛屽湪緇堢涓榪愯 lua 鍗沖彲璋冪敤瑙i噴鍣ㄣ
涓夈丩ua璇璦瑙i噴鍣ㄧ殑嫻嬭瘯
鍦ㄦ帶鍒跺彴涓婅緭鐚滆厞鍏lua鍛戒護錛歭ua
Lua 5.2.1 Copyright 錛圕錛 1994-2012 Lua.org, PUC-Rio
> print 錛堚淗ello World!鈥濓級 錛堣繘鍏ヤ氦浜掑懡浠ょ姸鎬侊紝鍦ㄦ彁紺虹︹>鈥濅笅杈撳叆嫻嬭瘯浠g爜錛
Hello World! 錛堣繑鍥炵殑緇撴灉錛
閿鍏 Control+D 閫鍑轟氦浜掑懡浠
濡傛灉鎯寵繍琛屼竴涓猯ua鑴氭湰鏂囦歡錛屽彲浠ヤ嬌鐢ㄤ笅闈㈠懡錛歭ua 鏂囦歡鍚
濡傦細lua hello.lua
hello.lua鏂囦歡鐨勪唬鐮侊細
io.write錛堚淗ello world, from 鈥,_VERSION,鈥溾!\n錛
緇撴灉錛欻ello world, from Lua 5.2!
娉ㄩ噴錛
Lua 鏄涓涓灝忓閥鐨勮剼鏈璇璦銆 鏄宸磋タ閲岀害鐑鍐呭崲澶╀富鏁欏ぇ瀛︼紙Pontifical Catholic University of Rio de Janeiro錛夐噷鐨勪竴涓鐮旂┒灝忕粍錛岀敱Roberto Ierusalimschy銆乄aldemar Celes 鍜 Luiz Henrique de Figueiredo鎵緇勬垚騫朵簬1993騫村紑鍙戙 鍏惰捐$洰鐨勬槸涓轟簡宓屽叆搴旂敤紼嬪簭涓錛屼粠鑰屼負搴旂敤紼嬪簭鎻愪緵鐏墊椿鐨勬墿灞曞拰瀹氬埗鍔熻兘銆
寰堝氬簲鐢ㄧ▼搴忎嬌鐢↙UA浣滀負鑷宸辯殑宓屽叆寮忚剼鏈璇璦錛屼互姝ゆ潵瀹炵幇鍙閰嶇疆鎬с佸彲鎵╁睍鎬с傝繖鍏朵腑鍖呮嫭欖斿吔涓栫晫銆佸崥寰蜂箣闂ㄣ佹劋鎬掔殑灝忛笩絳夈

D. .text .global 這是什麼意思arm linux 匯編

.text
.global
是arm-gcc編譯器的關鍵詞。
.text
指定了後續編譯出來的內容放在代碼段【可執行】;
.global
告訴編譯器後續跟的是一個全局可見的名字【可能是變數,也可以是函數名】;
在本例中,_start是一個函數的起始地址,也是編譯、鏈接後程序的起始地址。由於程序是通過載入器來載入的,必須要找到
_start名字的函數,因此_start必須定義成全局的,以便存在於編譯後的全局符合表中,供其它程序【如載入器】尋找到。

E. gcc中鏈接腳本lds如何使用

有兩種使用方汪改法:困空判

1,lds作為外置腳本,參與對gcc鏈接過程的控制。使用方法為
gcc XXX.c XX.lds。
gcc能夠自動識別你的文件列中後綴不能識別的文件,作為鏈接腳本使用。這樣編譯出來的程序,還是要使用gcc默認虧渣的lds腳本,你的腳本只是一個輔助。

2,lds代替系統的腳本。
這種要先使用gcc -c參數編譯你的源程序,編譯出來的.o文件,使用命令ld -T來指定lds文件鏈接到一起。

熱點內容
教孩子學編程python 發布:2024-11-25 23:31:05 瀏覽:911
如何開啟伺服器埠8008 發布:2024-11-25 23:30:27 瀏覽:805
python字典中文key 發布:2024-11-25 23:30:11 瀏覽:996
nosql資料庫與關系型資料庫 發布:2024-11-25 23:19:43 瀏覽:676
刀具資料庫 發布:2024-11-25 23:06:04 瀏覽:534
androidchrome瀏覽器 發布:2024-11-25 23:02:07 瀏覽:572
python提示符 發布:2024-11-25 22:53:28 瀏覽:494
超低溫疫苗存儲冰櫃生產廠家 發布:2024-11-25 22:32:58 瀏覽:537
x86linux 發布:2024-11-25 22:09:24 瀏覽:450
qq群怎麼設置上傳 發布:2024-11-25 22:08:37 瀏覽:16