看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Aligu1009 (=.=)》之銘言: : : 推 Bencrie:你應該先弄懂編譯與連結是怎麼回事 ... 06/06 15:46 : : → Bencrie:你應該先編譯 a.cc和main.cc,然後再把它們連結起來。 06/06 15:47 : : → Bencrie:make a.o ; make main.o ; g++ a.o main.o -o your_binary 06/06 15:49 也可以利用 g++ 把編譯 (compile) 跟連結 (link) 一口氣做完喔 :P main.cpp: #include <iostream> #include "myfunc.h" int main (void) { myfunc(); return 0; } myfunc.h: void myfunc(); myfunc.cpp: #include <iostream> #include "myfunc.h" void myfunc (void) { std::cout << "Hi! I am `myfunc()`" << std::endl; } $ g++ main.cpp myfunc.cpp $ ./a.out Hi! I am `myfunc()` -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.227.83.223
tinlans:只是這樣他就學不到編譯和連結的概念了。 06/06 19:11
tinlans:而且當檔案有 100 多個的時候,改一行全部重編很久。 06/06 19:11
Dannvix:樓上說的是 (Y) 06/06 19:14
hoson:請問樓樓上 為什麼改一行要全部重編? 06/06 21:12
LPH66:這個寫法會不論你檔案有沒有改過全部重跑一次 06/06 21:15
loveme00835:因為每個cpp都會再重編新的obj檔, 而不是只重編改過的 06/06 21:15
LPH66:如果是用 makefile 或手動重編的話 沒有動到的就不會重編 06/06 21:15
hoson:了解 所以就編有改過的cc就好了是吧? 感謝~ 06/07 01:46