main函數(shù)和啟動例程

當內(nèi)核使用一個exec函數(shù)執(zhí)行C程序時,在調(diào)用main函數(shù)之前先調(diào)用一個特殊的啟動例程,可執(zhí)行程序?qū)⒋死讨付槌绦虻钠鹗嫉刂?。啟動例程從?nèi)核獲取命令行參數(shù)和環(huán)境變量,然后為調(diào)用main函數(shù)做好準備。
我們常用gcc main.c -o main命令編譯一個程序,其實也可以分三步做,第一步生成匯編代碼,第二步生成目標文件,第三步生成可執(zhí)行文件:

1 $ gcc -S main.c2 $ gcc -c main.s3 $ gcc main.o

-S 選項生成匯編代碼, -c 選項生成目標文件,此外 -E 選項只做預處理而不編譯,如果不加這些選項則 gcc 執(zhí)行完整的編譯步驟,直到最后鏈接生成可執(zhí)行文件為止。gcc命令的選項圖大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓這些選項都可以和 -o 搭配使用,給輸出的文件重新命名而不使用 gcc 默認的文件名( xxx.c、 xxx.s 、 xxx.o 和 a.out ),例如 gcc main.o -o main 將 main.o 鏈接成可執(zhí)行文件 main 。

如果我們

網(wǎng)友評論