“undefined reference”(适用于linux,但不适用于windows上的cygwin)

时间:2012-12-15 17:32:26

标签: c++ boost reference cygwin undefined

  

可能重复:
  gcc linker errors on fedora: undefined reference

由于我遇到了VC ++的问题(gcc不会发生函数重载,因为我的项目合作伙伴是在Linux上编程),我在cygwin上切换到gcc,但是我无法运行程序这里也是(他能够毫无问题地编译相同的代码)

我正在尝试使用

进行编译
$ gcc -I D:/Programme/Boost_Library/boost_1_51 ABI_new.cpp -o ABI

之后我收到了大量的错误:

/tmp/ccO4eSA2.o:ABI_new.cpp:(.text+0xd): undefined reference to ´std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
    /tmp/ccO4eSA2.o:ABI_new.cpp:(.text+0x60): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
    /tmp/ccO4eSA2.o:ABI_new.cpp:(.text+0x9f): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
    /tmp/ccO4eSA2.o:ABI_new.cpp:(.text+0xce): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'

我不确定这是否可以对程序显然无法读取输入文件(由退出状态指示)做任何事情,但我不知道,为什么这也不起作用,因为 - 再次 - 我的同事对完全相同的代码没有任何问题。

我真的很感激任何tipps。

1 个答案:

答案 0 :(得分:5)

尝试使用g++代替gcc进行编译。后者可能不了解C ++标准库,也没有指示链接器链接它。