GCC 學習記錄

抽空學習了Linux GCC,以前都是搞visual c++和java開發,很少關注這塊,只聽說過make,cmake...

 

小布老師視頻:https://www.bilibili.com/video/av82377250?p=5

 

編譯過程:

步驟1:預處理(處理宏)  Preprocessing(to expand macros)

步驟2:編譯(源程序生成彙編語言)  Complication(from source code to assembly)

步驟3:Assembly(彙編語言 到機器碼) Assembly(from assembly language to machine code)

步驟4:鏈接(生成可執行文件)  Linking(to create the final executable)

 

GCC編譯Hello world

gcc -Wall hello.c main.c -o  hello.o

 

參數說明:

-Wall:  使用標準的警告

-o: 目標文件輸出

-v  打印詳細信息

-c 只編譯生成目標文件,即不鏈接  gcc -Wall -c main.c

-L 包含鏈接庫文件路徑

-I 指定頭文件路徑

-l 指定鏈接哪些庫文件

-std指定C語言標準,如-std=c99

-D 宏定義。 對應indef宏定義,預處理使用

-E 只做預處理,不編譯

-g 保存debug信息

-OLEVEL  gcc編譯優化等級0-3  等級越高會影響後續調試  建議平時用O0,發佈時用O2

 

 

C_INCLUDE_PATH  CPLUS_INCLUDE_PATH

LIBRARY_PATH    靜態庫路徑

LD_LIBRARY_PATH  動態庫路徑

創建Library

 

 

 

告警設置:

 

輔助命令:

ldd :  查看當前文件依賴哪些動態庫

file :   查看當前文件的類型

其他的一些工具,沒記錄了,很難用上,以後用了在看吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章