Re: [問題] 自訂的h檔中的宣告怎麼找到cc檔的定義

看板C_and_CPP作者 (丹丹)時間15年前 (2010/06/06 17:09), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《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

06/06 19:11, , 1F
只是這樣他就學不到編譯和連結的概念了。
06/06 19:11, 1F

06/06 19:11, , 2F
而且當檔案有 100 多個的時候,改一行全部重編很久。
06/06 19:11, 2F

06/06 19:14, , 3F
樓上說的是 (Y)
06/06 19:14, 3F

06/06 21:12, , 4F
請問樓樓上 為什麼改一行要全部重編?
06/06 21:12, 4F

06/06 21:15, , 5F
這個寫法會不論你檔案有沒有改過全部重跑一次
06/06 21:15, 5F

06/06 21:15, , 6F
因為每個cpp都會再重編新的obj檔, 而不是只重編改過的
06/06 21:15, 6F

06/06 21:15, , 7F
如果是用 makefile 或手動重編的話 沒有動到的就不會重編
06/06 21:15, 7F

06/07 01:46, , 8F
了解 所以就編有改過的cc就好了是吧? 感謝~
06/07 01:46, 8F
文章代碼(AID): #1C2sN4Wy (C_and_CPP)
文章代碼(AID): #1C2sN4Wy (C_and_CPP)