作者Aligu1009 (=.=)
看板C_and_CPP
標題[問題] 自訂的h檔中的宣告怎麼找到cc檔的定義
時間Sun Jun 6 15:40:34 2010
遇到的問題: (題意請描述清楚)
在 a.h 中寫函式的宣告
a.cc 中寫函式的定義
在 main.cc 中
#include "a.h"
但 compiler 只找得到宣告而找不到定義
錯誤結果:
undefined reference to `myfunc(...)'
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
g++, Linux
補充說明:
使用Windows + VC時,只要讓.cc與.h的主檔名相同,IDE會自動幫我找到定義
請問用 Linux + g++時,該怎麼讓編譯器知道a.h的定義在a.cc中呢?謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 157.22.247.53
※ 編輯: Aligu1009 來自: 157.22.247.53 (06/06 15:41)
推 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
※ 編輯: Aligu1009 來自: 157.22.247.53 (06/06 15:51)
→ Aligu1009:gotcha, tks! 06/06 15:55
→ tinlans:compiler 只負責找宣告,因為識別字沒宣告就不能用。 06/06 15:57