作者negatree (Negatree)
看板EE_DSnP
標題[問題] make的問題
時間Wed Nov 2 22:59:20 2011
不管是 make 還是 make test
跑到 > building modCalc... 或 > building testMC
會跑出下面的error
Undefined symbols:
"myStr2Int(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&)", referenced from:
ModNum::getStrVal(std:: ..............
我猜是util.h裡的東西沒有link起來
可是我也不知道怎麼辦......
拜託各位救救我吧!!!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.183
1F:→ e124553423:make clean再試試? 11/02 23:01
2F:推 victoret:是不是 member function 直接定義在 .h 檔,然後 .h 檔沒 11/02 23:07
3F:→ victoret:有 include util.h? 11/02 23:07
4F:推 ric2k1:看來是 linking error. make clean 之後看看 util 這個 11/02 23:13
5F:→ ric2k1:package 有沒有被重新 compile? 11/02 23:14
6F:推 alextan:我之前有碰到類似的問題 是因為static function定義錯誤 11/02 23:19
7F:→ alextan:另外還有myStr2Int輸入的參數錯誤 11/02 23:20
8F:→ wmin0:看起來你丟了三個參數給myStr2Int @@" 11/03 01:31
萬分感謝啊 各位強者大大
經過make clean再make的結果其實一樣耶!
Checking util...
> compiling: myGetChar.cpp
> compiling: myString.cpp
Building libutil.a...
Undefined symbols:
"myStr2Int(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&)", referenced from:
ModNum::getStrVal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ModNum&)in libcalc.a(calcModNum.o)
"isValidVarName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
ModNum::getStrVal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ModNum&)in libcalc.a(calcModNum.o)
ld: symbol(s) not found // 應該是在util.h裡面的東西都沒進去吧!!!!
collect2: ld returned 1 exit status
make[1]: *** [../../bin/testMC] Error 1
make: *** [testmain] Error 2
如果真的是linking error要怎麼解決???
※ 編輯: negatree 來自: 140.112.25.106 (11/03 13:59)
9F:→ james54333:#include <util.h> ? 11/03 14:08
10F:推 ric2k1:你的 ModNum::getStrVal() 是寫在 calcModNum.h 裏頭嗎? 11/03 14:32
11F:→ ric2k1:試著把它搬到 calcModNum.cpp 看看, 11/03 14:33
12F:→ ric2k1:並且要 include "util.h" 11/03 14:33
13F:推 ric2k1:否則把你的 calcModNum.{h,cpp} 寄給我看一下! 11/03 14:34
14F:→ negatree:好 我試試 11/03 21:47
15F:→ negatree:他們是寫在calcModNum.cpp裡的 11/03 21:48