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