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

看板C_and_CPP作者 (=.=)時間15年前 (2010/06/06 15:40), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/3 (看更多)
遇到的問題: (題意請描述清楚) 在 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)

06/06 15:46, , 1F
你應該先弄懂編譯與連結是怎麼回事 ...
06/06 15:46, 1F

06/06 15:47, , 2F
你應該先編譯 a.cc和main.cc,然後再把它們連結起來。
06/06 15:47, 2F

06/06 15:49, , 3F
make a.o ; make main.o ; g++ a.o main.o -o your_binary
06/06 15:49, 3F
※ 編輯: Aligu1009 來自: 157.22.247.53 (06/06 15:51)

06/06 15:55, , 4F
gotcha, tks!
06/06 15:55, 4F

06/06 15:57, , 5F
compiler 只負責找宣告,因為識別字沒宣告就不能用。
06/06 15:57, 5F
文章代碼(AID): #1C2r3qxg (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1C2r3qxg (C_and_CPP)