翻譯環境:
編譯(編譯器):
1.預編譯(預處理):
最終生成test.i文件
【命令】:gcc test.c -E -O test.i
【包含過程】:
1.頭文件的包含
2.注釋的刪除
3.#define定義的符號的替換
2.編譯:
最終生成test.s文件
【命令】:gcc test.i -s
【包含過程】:
把c語言翻譯成匯編語言(指令級代碼)
1.語法分析
2.詞法分析
3.語義定析
4.符號匯總(各種函數名+全局變量名)
3.匯編
最終生成test.o文件(vs中是.obj文件)
【命令】:gcc test.s -c
【包含過程】:
把匯編代碼轉換成二進制指令
生成符號表(函數名+函數地址)
鏈接(鏈接器):
最終生成.exe文件(可執行文件)并執行
【命令】:
gcc test.o (如果想指定文件名為test.exe,則輸入命令:gcc test.o -o test.exe)
【包含過程】:
1.合并段表
2.符號表的合并和重定表