作者FATCLOUD (A Cloud)
看板EE_DSnP
标题[问题] 神秘的 stdlib.h
时间Sat Apr 11 23:45:21 2009
现在我又遇到了一个问题
我在写 ModNum.h 和 .cpp 的时候
过程中写一写我就 make test 一遍
看 compiler 回报的错误讯息来除错
把这两个档案中的错误都除掉了
而除到最後
我在 make test 完毕以後只剩两个错误
test.cpp:58: 错误: 「exit」 在此作用栏位中尚未宣告
test.cpp:61: 错误: 「atoi」 在此作用栏位中尚未宣告
据我英明的判断
这两个函数是 stdlib.h 或者 cstdlib 里面
於是我就在 test.cpp 里面补上了一行
#include <stdlib.h>
然後 make test 一遍
却得到了两大页错误讯息:
test.o: In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.3/iostream:77: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.3/iostream:77: undefined reference to `std::ios_base::Init::~Init()'
test.o: In function `print()':
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `std::cout'
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(unsigned long)'
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, ModNum const&)'
/home/fatcloud/homeworks/data structure/hw3/src/test/test.cpp:28: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
...........
.........
/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:28: undefined reference to `ModNum::_modulus'
test.o: In function `ModNum::operator+(ModNum const&)':
/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:41: undefined reference to `ModNum::_modulus'
test.o: In function `ModNum::operator+=(ModNum const&)':
/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:42: undefined reference to `ModNum::_modulus'
test.o: In function `ModNum::operator-=(ModNum const&)':
/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:44: undefined reference to `ModNum::_modulus'
test.o: In function `ModNum::operator*(ModNum const&)':
/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:45: undefined reference to `ModNum::_modulus'
test.o:/home/fatcloud/homeworks/data structure/hw3/src/test/../../include/calcModNum.h:46: more undefined references to `ModNum::_modulus' follow
test.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld 回传 1
make: *** [test] Error 1
总而言之就是 undefined reference to everything
要怎麽处理呢..?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.218.75
1F:推 sa901119:那两者应要include <cstdlib> 04/11 23:50
2F:推 ric2k1:试着 initialize ModNum::_modulus 看看? 04/11 23:52
3F:→ FATCLOUD:我也试了 cstdlib 结果还是一样耶 我的电脑是不是怪怪的 04/11 23:54
4F:推 timrau:是不是还缺了iostream 04/12 00:24
5F:→ FATCLOUD:我在 calcModNum.cpp 里宣告了 int ModNum::_modulus=... 04/12 00:44
6F:→ FATCLOUD:也有 iostream.. 04/12 00:45
7F:→ FATCLOUD:我原本是在 test 资料夹里面打 make test 04/12 00:46
8F:→ FATCLOUD:改到 hw3 资料夹底下打就没有一大堆错误讯息了 04/12 00:46
9F:→ FATCLOUD:但是会去 check cmd 而我的 cmd 没写好 04/12 00:47
10F:→ FATCLOUD:最後在 building testMC 时说 caonnot find -lcmd 就没了 04/12 00:48