推 Bencrie:int func1(void); 不知道有沒有差 12/26 20:00
應該和這無關
最開始的問題是我在某個有三個參數的function中打算新增參數,結果一加就error
也不是參數數量的問題,因為有個function參數將近10個也沒問題...
→ scwg:func2 的 definition 要用 gcc compile,或也包在extern "C"裡 12/26 21:06
→ scwg:咦不對, 只要有 include 同個 header 應該就夠了啊 12/26 21:11
→ Feis:我懷疑他的 definition 忘記加 int param2... 12/26 21:29
→ Feis:所以被認為跟宣告的不是同一個 12/26 21:30
cpp確定有改到,我還rollback到原本正常的版本,手動新增一個參數,結果就像
這樣了...
※ 編輯: lwecloud 來自: 218.161.19.17 (12/26 21:35)
※ 編輯: lwecloud 來自: 218.161.19.17 (12/26 21:36)
→ Feis:所以現在已經確定 .h 內跟 .cpp 都長得 "一模一樣" 了? 12/26 21:37
是的,我很肯定...還複製貼上過了(有記得加上/拿掉分號)
昨天把整個系統rebuild 還是一樣orz
※ 編輯: lwecloud 來自: 219.87.128.158 (12/27 09:38)
找到問題點了,之前在複製.h的時候多放了一個在別的資料夾中
變成這樣:
/MyProj/lib.cpp
/MyProj/lib.h
/MyProj/include/lib.h
原本應該是改/MyProj/include/lib.h這個檔,但compiler優先去讀/MyProj/lib.h
把/MyProj/lib.h刪掉就正常了。
的確如Feis板友所猜測的原因一樣,是宣告和定義不同造成的,只是盲點在一個重
複的檔案...。
感謝各位板友<(_ _)>
※ 編輯: lwecloud 來自: 219.87.128.158 (12/27 09:45)
→ scwg:補個 side note, 在這種問題可以用 g++ -E lib.cpp 看出來 12/27 11:46