作者Dannvix (丹丹)
看板C_and_CPP
標題Re: [問題] 自訂的h檔中的宣告怎麼找到cc檔的定義
時間Sun Jun 6 17:09:22 2010
※ 引述《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