【gcc -e test.c -o test.i------>預處理檔案生成.i 檔案。】
1、c語言程式生成過程
下面所有的操作以hello world程式為例,原始碼檔案命名為t.c,原始碼內容如下:
步驟閱讀
22、預處理階斷
預處理階斷是對c原始碼中的預處理**進行處理。
步驟閱讀
33、編譯階斷
編譯階斷是將c原始碼處理為彙編**。
gcc -s -o t.s t.i
或者gcc -s -o t.s t.c
步驟閱讀
44、彙編階斷
彙編階斷是將彙編**處理為二進位制**。
gcc -c -o t.o t.s
或者gcc -c -o t.o t.c
步驟閱讀
55、鏈結階斷
鏈結階斷將二進位制**打包成乙個作業系統可以識別的可執行檔案格式,linux是elf格式,windows上是pe格式。
gcc -o t t.o
或者gcc -o t t.c
步驟閱讀
Linux 用gcc生成靜態庫和動態庫
linux下的庫有兩種 靜態庫和共享庫 動態庫 二者的不同點在於 被載入的時刻不同。靜態庫在程式編譯時會被連線到目標 中,目標程式執行時將不再需要該動態庫,移植方便,體積較大,但是浪費空間和資源,因為所有相關的物件檔案與牽涉到的庫被鏈結合成乙個可執行檔案。動態庫在程式編譯時並不會被連線到目標 中,而...
在Linux情況下用gcc寫程式
測試下linux是否裝有gcc。輸入gcc 如果存在它會提示 no input files 不存在則提示gcc not found 沒安裝的,又不會安裝的,可以參考我的另一篇經驗 教你怎麼在linux上安裝gcc 首先touch helloworld.c 新建乙個helloworld.c檔案。vim...
windows下用gcc編譯socket程式
程式參考 visual studio 2019 c 實現socket通訊,新增ws2 32.lib庫,新手 我這做了微調 編譯gcc client.c lwsock32 o client,追加 lwsock32 include include pragma comment lib,ws2 32.li...