對gcc的理解

2021-04-30 20:12:44 字數 347 閱讀 1898

gcc中,ld是鏈器程式,ar可將多個目錄檔案合成乙個函式庫,如ar r liba.a a.o會從a.o中生成a這個庫。nm可以檢視庫檔案的內容,如nm libstdc++.a。

gcc部分引數:

-l 定義連線的庫目錄

-i 定義頭檔案目錄

-o 生成的目的檔名

-o 加數字定義優化級別

-g 生成除錯資訊

-c 只編譯不鏈結

-fpic 生成相對位址**,可用於生成動態庫

-static 強制生成靜態鏈結的程式

-aout 生成a.out格式的檔案,缺少是elf

-elf 生成elf格式的檔案,3.0後預設是elf

深入理解gcc

我們來看一下 gcc常用選項 v 檢視gcc編譯器的版本,顯示gcc執行時的詳細過程 oplace the output into 指定輸出檔名為file,這個名稱不能跟源檔名同名 epreprocess only do not compile,assemble or link 只預處理,不會編譯 ...

gcc 不同版本對程式的影響

1.因為在linux 下我們寫的c 程式,預設是會鏈結 libstdc so 這個動態庫檔案,如果牽扯到版本的更新,直接用新的動態庫檔案更新老的話,老的程式都無法執行。因為找不到老的動態庫檔案。2.當使用高版本的 gcc 鏈結程式的時候,老的原始檔需要重新編譯,因為老的 o 檔案中 可能對 stl中...

對委託的理解

在公司看了一上午的委託和事件 其實也沒有那麼久了,2個小時而已 終於明白了一些,看大家都沒有回帖,可能是因為我沒有設定加分,我的分太少了,剛來csdn。委託 我對委託的理解是這樣的 實現定乙個函式規範 簡單點說就是定義乙個函式的格式 如 public int test int a 委託裡是這樣寫的p...