有沒有人知道-c
標誌在gcc
中做了什麼?GCC中的-c選項做什麼
例如,什麼是我所知道的第二個做出.a
文件
gcc -c output0.c
vs gcc output0.c
之間的差異,但我不知道什麼.a
文件做。
而且什麼是-o
做
gcc output0.o -o output0
這只是來命名輸出文件吧?
有沒有人知道-c
標誌在gcc
中做了什麼?GCC中的-c選項做什麼
例如,什麼是我所知道的第二個做出.a
文件
gcc -c output0.c
vs gcc output0.c
之間的差異,但我不知道什麼.a
文件做。
而且什麼是-o
做
gcc output0.o -o output0
這只是來命名輸出文件吧?
從man gcc
:
...
-c編譯或彙編源文件,但不鏈接。鏈接階段根本沒有完成。每個源文件的目標文件的最終輸出格式爲 。
默認情況下,源文件的目標文件名由 替換爲.o,.i,.s等後綴.o。
無法識別的輸入文件,不需要編譯或彙編, 被忽略。
...
-c
編譯或彙編源文件,但不鏈接。鏈接 階段根本沒有完成。對於每個源文件,最終輸出格式爲 目標文件。
默認情況下,源文件的目標文件名由 替換爲.o,.i,.s等後綴.o。無法識別的輸入 文件,不需要編譯或彙編,將被忽略。
-o文件中的文件的文件
地輸出。無論是哪種類型的 輸出,它都適用,無論它是可執行文件,對象 文件,彙編程序文件還是預處理的C代碼。如果指定了-o不是 ,則缺省值是將可執行文件放在a.out中,source.o中爲source.suffix的目標文件爲 ,彙編程序文件爲 source.s,是源中的預編譯頭文件。 suffix.gch和所有 預處理的C源標準輸出。
更多可以在GCC Manual Page
-c找到將指示GCC僅在源文件編譯成一個的.o(對象)文件,但不調用鏈接。
對於包含許多.c文件的項目,通常會先將所有.c文件編譯爲.o文件,然後將所有內容與庫一起鏈接起來。
-c編譯或彙編源文件,但不鏈接。鏈接階段根本就沒有完成。對於每個源文件,最終輸出均以對象 文件的形式存在。
By default, the object file name for a source file is made by replacing the suffix >.c, .i, .s, etc., with .o. Unrecognized input files, not requiring compilation or assembly, are ignored.
我建議你閱讀[在線文檔(http://gcc.gnu.org/onlinedocs/)。例如,名爲[「3.2選項控制輸出種類」]的部分(http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Overall-Options.html#Overall-Options) –
「只編譯「'gcc -c'只產生目標文件。爲了生成一個可執行文件,你必須再次調用鏈接器。可能是'man gcc'? :) –
一般來說,看看你已經提出的其他問題,你需要學習如何在用你的問題困擾別人之前使用免費的信息。如果你在linux系統上,'man'是你的朋友。如果您沒有在本地找到它,請先使用搜索引擎。 –