gcc Linux 編譯相關整理

2021-08-20 01:34:05 字數 1225 閱讀 6049

gcc

1、乙個c/c++檔案的編譯過程,經過

預處理(preprocessing)  -> 編譯(compilation) -> 彙編(assembly) -> 鏈結(linking)

. 檔案 -> .s 檔案 -> .o 檔案 -> 可執行檔案

示例:(1)預處理,生成預編譯檔案 ( . 檔案)

gcc -e hello.c -o hello.i

(2)編譯,生成彙編** ( .s 檔案)

gcc -s hello.i -o hello.s

(3)彙編,生成目標檔案 (.o 檔案)

gcc -c hello.s -o hello.o

(4)鏈結,生成可執行檔案

gcc hello.o -o hello

一步到位 :gcc hello.c -o hello

2、編譯選項

常用選項

-v                 檢視gcc編譯器的版本,顯示gcc執行時的詳細過程

-o 指定輸出檔名為file

-e                 只預處理,不編譯、彙編、鏈結

-s                只編譯,不會彙編和鏈結

-c                編譯和彙編,不會鏈結

-g                編譯[debug]版本       gcc hello.c -g -o hello

-o1/o2/o3   編譯[優化]

3、q2:如果 hello 需要使用 libpthread.so 中的函式?

q3:如果 hello 需要使用 /home/lib 中的 libtest.so 中的函式?

a1:  

gcc hello.c -o hello -i.. 

編譯選項 -i : 指定後面的路徑為優先尋找標頭檔案的目錄路徑

a2:

gcc hello.c -o hello -i.. -lpthread

編譯選項 -l (-lpthread) : 尋找動態鏈結庫檔案libpthread.so(也就是檔名去掉字首和字尾所代表的庫檔案,即指定 庫 的名稱)

a3:

gcc hello.c -o hello -i.. -l/home/lib -ltest

編譯選項 -l : 指定 庫的路徑

c編譯整理

1.測試 main.c include hello.h int main void hello.h ifndef hello h define hello h void hello const char name endif hello.c includevoid hello const char ...

整理 DC相關

驗證 1.寫個測試程式,在螢幕上圈選乙個區域,把這個區域的公釐尺寸報出來.2.寫個螢幕標尺,使用者隨意在螢幕上標註兩點,報出這條線的公釐尺寸.要顯示出標尺的外形.codeproject上有這種資料,先找一下.預期的實現 程式執行後為托盤,測量按鈕在懸浮窗內.懸浮窗半透明,位圖背景,位圖按鈕.卡尺的左...

NSDateFormatter相關整理

formatter譯為格式,相應的nsdateformatter就相當於是nsdate的轉換類,將nsdate轉換為另一種格式,或轉換回來。nsdate沒有自己的輸出,需要借助nsdateformatter以相應格式輸出。這差不多就是nsdateformatter的作用了吧。常用的方法並不複雜,幾條...