Linux 下C編譯和執行過程

2021-07-31 23:32:33 字數 734 閱讀 1197

1.預處理階段

gcc -e -o example.i example.c
將宣告在標頭檔案中的內容加到生成的.i檔案中

2.編譯階段

gcc -s -o example.s example.i
將.i檔案內容編譯成組合語言後生成.s檔案

3.彙編階段

gcc -o example.o -c example.c
將.s檔案內容彙編成機器語言後生成.o檔案

4.鏈結階段

gcc -o example example.o
將.o檔案鏈結生成可執行檔案

靜態庫的建立

ar rcs lib庫檔名.a 目標檔案1.o 目標檔案2.o....目標檔案n.o
靜態庫使用

gcc -o 可執行檔案 -ldir 呼叫者的c原始檔 -ldir

-l庫檔名

動態庫的建立

gcc -shared

-fpci

-o lib庫檔名.so 目標檔案1.o...

..

動態庫的使用

gcc -o 可執行檔案 -ldir 呼叫者的c原始檔 -ldir

-l庫檔名

Linux下C語言 C 的編譯過程

經過前一段時間的學習,我了解了在linux條件下c語言和c 程式的編譯過程以及所涉及到的編譯使用命令,今天我就來總結一下這些內容。預編譯期的作用 1 刪除注釋 2 處理預處理指令 3 將包含的標頭檔案展開。編譯期的作用 1 語法分析 2 語義分析 3 彙總符號。彙編期的作用 1 將彙編指令翻譯成二進...

在linux下編譯執行C 程式

頭一回。把windows下的程式挪到linux下,見這篇隨筆 1 編譯zthread,使用.configure失敗,直接編譯的,方法還是上面提到的那篇隨筆 2 編譯原始碼,最開始用的cc,後來老是報undefined reference,甚至hello world程式也報undefined refe...

linux下c 學習筆記 c 編譯執行

預處理 合併多個單張的txt檔案為乙個訓練txt cat txt train.txt替換檔案中的特定字串 將 80 替換為 1 find file xargs perl pi e s old new g find train.txt xargs perl pi e s 80 1 g 壓縮和解壓縮 z...