作者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