#include"header.h"
int main(){
function();
return 0;
}
上面是我的代碼的簡化形式。我在header.h文件中實現了function(),並使用這個code.c文件將它放在同一個目錄中。gcc -c選項如何工作?
我聽說「gcc -c code.c」是「編譯但沒有鏈接」選項,但是這段代碼需要鏈接到header.h文件。所以我猜-c選項會標記一個錯誤,但它沒有。雖然沒有-c選項,它會標記一個錯誤。任何人都可以解釋這個-c選項如何工作?
我覺得你對頭文件如何工作以及編譯和鏈接實際上是困惑的。標題只是聲明原型(實質上承諾函數將在未來實際存在)。鏈接器採取了這些承諾,收集了一些編譯後的代碼,並盡力完成它們。如果您試圖將其鏈接起來,那麼*然後*會出現錯誤。在linux下,如果你想直接調用鏈接器,鏈接器通常是'ld',或者你可以使用'gcc -o program obj.o'這樣的gcc來查看你的錯誤。 – Corbin 2015-04-02 04:15:57