linux學習筆記一(gcc)

2021-08-18 03:45:06 字數 1404 閱讀 3002

1、gcc

gcc -e //預處理 test.c -o test.i -m32(32位機器)//#define #include //

gcc -s //編譯 **.s

gcc -c //彙編 **.o .o檔案 可重定位的目標檔案

//鏈結

readelf 檢視elf檔案-h檢視檔案的頭 test.o

-a列出所有資訊

gcc test.c -wall (顯示所有警告)

file test.i

vim test.i

預處理:

詞法分析 lex

語法分析

語義分析

中間**

pe windows下可執行檔案的格式

elf liux 下可執行檔案的格式

虛擬記憶體空間大小為4個g

nm 看符號表

main 函式執行起來後第乙個函式是_start

abi 二進位制介面不一樣

strip main 刪除符號資訊,給檔案**

objdump -ds main 檢視符號main函式的符號資訊

volatile(阻止編譯優化)

o1 o2 o3 優化最高等級(省略很多東西)

2、1)liux偵錯程式-gdb使用:

除錯要加-g選項

l(list)

l num

l function

設定斷點 b 19(行)或b 函式名

b 行號 if i==9(條件) 設定條件斷點

i b 檢視設定的斷點資訊

r 執行

n 執行下一步(f10)

whatis 檢視型別

print 列印變數的值

d 斷點編號 刪除斷點

finish 執行到當前函式的返回

gdb a.out 除錯

2)valgrind a.out 檢測程式記憶體有沒有洩露

3)top 看記憶體使用情況

shift >下翻

shift < 上翻

bt 函式呼叫棧

除錯core程式

1、gcc -g;//重新編譯

2、ulimit -c unlimited;//讓它的大小不受限制

3、./a.out

4、gdb a.out core.***//執行到core的地方

gcc -v顯示所有詳細資訊

Linux 學習筆記 gcc初體驗

大部分內容 用vmware裝了個ubuntu的虛擬機器嗎,前坑未填,又增新坑。在這裡學了一下,基本的目錄結構 目錄管理的生存向命令 vim的基本操作 好了!開始填坑!ctrl alt t 開啟終端 pwd 顯示當前目錄 cd 切換目錄 接下來主要說明gcc的用法 1.單個檔案的編譯 首先通過vim建...

gcc學習筆記

1 連線標頭檔案 gcc i usr openwim include fred.c 使用 i 標誌來包含儲存在子目錄或者非標準位置的中的標頭檔案。例如上邊語句指示編譯器不僅在標準位置,也在 usr openwim include 目錄中查詢程式 fred.c包含的標頭檔案。2 連線庫檔案 a 靜態庫...

gcc 學習筆記

gcc 編譯程式的過程 預處理 pre processing 編譯 compiling 彙編 assembling 鏈結 linking 選項名 作用 o 產生目標 i s o 可執行檔案等 c 通知gcc取消鏈結步驟,即編譯原始碼並在最後生成目標檔案 e 只執行c預編譯器 s 告訴編譯器產生組合語...