4

可能重复:
fedora 上的 gcc 链接器错误:未定义的引用

由于我在使用 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'

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

我真的很感激任何提示。

4

1 回答 1

5

尝试使用g++而不是编译gcc。后者可能不知道 C++ 标准库,并且未能指示链接器将其链接进去。

于 2012-12-15T17:49:18.517 回答