推 victoret:#include <stdlib.h> 也無解ˊˋ 12/24 23:58
→ victoret:應該說在 cirGate.h 裡 include 了之後,會有一大堆 main 12/25 00:03
→ victoret:和 cirCmd.cpp 裡的變數變成 undefined...而且之後一定要 12/25 00:03
→ victoret:make clean 才能消除這種 undefined 的 compile error 12/25 00:04
→ victoret:不過原來 exit 沒定義的那個錯誤訊息會不見就是了 12/25 00:07
推 ric2k1:我等一下就會上傳完整版的 final project. Documenting... 12/25 00:23
→ ric2k1:我會給大家我的版本的 cirMgr.o 以及 cirGate.o 12/25 00:24
推 ric2k1:上傳囉! 請見下下一篇 & 重新下載 12/25 11:59
請問,要用自己的HW6的話要做些什麼呢?
我把新的cirCmd裡面需要的cirMgr函數複製到我的cirMgr裡面,然後
通通#include <cstdlib>
然後make之後就發生這種事:
/usr/bin/ld: skipping incompatible ../../lib/libcmd.a when searching for -lcmd
/usr/bin/ld: cannot find -lcmd
其他都沒問題。吧。
請問這會是什麼情況呢?
※ 編輯: takua624 來自: 140.112.4.182 (12/25 16:21)
make clean 再 make 32 再 make之後,錯誤訊息變成:
../../lib/libcir.a(cirCmd.o): In function
`CirPrintCmd::exec(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)':
/home/takua624/fraig/src/cir/cirCmd.cpp:145: undefined reference to
`CirMgr::printFECPairs() const'
collect2: ld returned 1 exit status
make[1]: *** [../../bin/fraig] Error 1
make: *** [main] Error 2
我明明就有在cirmgr裡面加入printFECPairs()啊!這到底是什麼意思啊?
※ 編輯: takua624 來自: 140.112.4.182 (12/25 16:29)
然後我在cirCmd.cpp裡面把FEC相關的那兩行變成comment
結果make 就過了...請問那兩行到底該怎麼辦呢?什麼是undefined reference啦??????
※ 編輯: takua624 來自: 140.112.4.182 (12/25 16:36)
我又繼續嘗試:
else if (myStrNCmp("-FECpairs", token, 4) == 0)
cirMgr->printFECPairs();
這是原本的樣子,會被說是undefined reference to CirMgr::printFECPairs() const
把const拿掉之後還是一樣。
就算在cirMgr.h裡面新增一個叫void AAA();
else if (myStrNCmp("-FECpairs", token, 4) == 0)
cirMgr->AAA();
結果照樣還是undefined reference
可是如果改成
else if (myStrNCmp("-FECpairs", token, 4) == 0)
cirMgr->sweep();
竟然就過了。
請問這到底是什麼問題呢???????????????????????????????????
※ 編輯: takua624 來自: 140.112.4.182 (12/25 17:23)
找到問題了,各位,如果出現undefined reference to [function]
請一定要去跟cmdMgr相關的所有.cpp檔檢查過這個function有沒有定義...
※ 編輯: takua624 來自: 140.112.4.182 (12/25 17:29)
推 ric2k1:推!! 辛苦了!! 我來說明一下。 12/25 18:10