天天看點

gcc編譯問題:gcc後面既有-c又有-o是什麼意思?比如gcc -c a.c -o a.o ,-o不是後面接生成的可執行檔案名麼

-c和-o都是gcc編譯器的可選參數

-c表示隻編譯(compile)源檔案但不連結,會把.c或.cc的c源程式編譯成目标檔案,一般是.o檔案。

-o用于指定輸出(out)檔案名。不用-o的話,一般會在目前檔案夾下生成預設的a.out檔案作為可執行程式。

例如

gcc -c test.c将生成test.o的目标檔案

gcc -o app test.c将生成可執行程式app

gcc -c a.c -o a.o表示把源檔案a.c編譯成指定檔案名a.o的中間目标檔案(其實在這裡,你把-o a.o省掉,效果是一樣的,因為中間檔案預設與源檔案同名,隻是字尾變化)。