mian.o 和main.out有什么區(qū)別?
mian.o 和main.out有什么區(qū)別?out不可覆蓋那個(gè).o可以覆蓋不?比如:gcc XXXX.c XXX.c .o這個(gè)類(lèi)似的代碼能成立嗎?當(dāng)然XXXX和XXX是可以執(zhí)行的
mian.o 和main.out有什么區(qū)別?out不可覆蓋那個(gè).o可以覆蓋不?比如:gcc XXXX.c XXX.c .o這個(gè)類(lèi)似的代碼能成立嗎?當(dāng)然XXXX和XXX是可以執(zhí)行的
2015-11-16
舉報(bào)
2016-02-10
有人知道.out文件和使用-o參數(shù)指定的可執(zhí)行文件之間有什么區(qū)別嗎?還是就是一個(gè)名字的區(qū)別呢?
2015-11-16
.o 是編譯器生成的“object文件”(大概叫目標(biāo)文件)
.out 應(yīng)該就是可執(zhí)行文件。
C代碼要經(jīng)過(guò)“編譯”和“鏈接”才能執(zhí)行,單純地編譯就是生成 .o文件 ,把(單個(gè)或多個(gè)).o文件(還有各種庫(kù))鏈接起來(lái)才能形成可執(zhí)行文件。
gcc xxx.c ?會(huì)將xxx.c編譯鏈接生成一個(gè)叫a.out的可執(zhí)行文件。
gcc xxx.c -o yyy? 會(huì)把xxx.c編譯鏈接生成名為yyy的可執(zhí)行文件, -o 參數(shù)可以指定輸出的文件名(不指定就是上面的a.out)
gcc -c xxx.c? 會(huì)將xxx.c編譯成xxx.o
gcc xxx.o yyy.o zzz.o? 會(huì)把這幾個(gè).o文件鏈接起來(lái)形成可執(zhí)行文件(你也可以直接調(diào)用鏈接器ld來(lái)鏈接它們)