C++ 奇怪的未定义引用!!!未定义对“std::”的引用\u默认\u alloc\u模板<;正确,0>;::解除分配(无效*,无符号整数)和#x27;

C++ 奇怪的未定义引用!!!未定义对“std::”的引用\u默认\u alloc\u模板<;正确,0>;::解除分配(无效*,无符号整数)和#x27;,c++,C++,当我编译程序时 我得到了这个错误 undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)' 未定义对“std::__default_alloc_template::deallocate(void*,unsigned int)”的引用 它觉得在标准库或其他地方找不到参考。 这是某种自由冲突吗。 基本上,我正在尝试移植GCC 3.1.1到4.1.2上

当我编译程序时

我得到了这个错误

undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
未定义对“std::__default_alloc_template::deallocate(void*,unsigned int)”的引用
它觉得在标准库或其他地方找不到参考。 这是某种自由冲突吗。 基本上,我正在尝试移植GCC 3.1.1到4.1.2上的代码


由于编译器发生了变化,我面临着这个问题

您是否仍在3.1.1上链接其他组件,或者甚至链接到了错误的GNU库?

您是否为正在使用的标准库组件包含了所有适当的头文件

比如说,

#include <cstdlib>
#include <vector>
#include <algorithm>
#include <functional>
#include <map>
#include <set>
#包括
#包括
#包括
#包括
#包括
#包括

> p>听起来像是在使用一些C++代码。 “std”命名空间和“模板”

试着用g++编译代码,如果不起作用,试着在包含行后面加上“usingnamespace std;”

你能提供至少几行错误的来源吗

顺便说一句,发现这个链接时问了同样的问题:


他们建议安装libstdc++。

我没有使用足够的GCC来提供答案,但您可能希望至少提供编译器抱怨的源代码。@Pontus我怀疑他的源代码中的错误,更可能是他的构建设置或环境。@CashCow:可能。哪一部分出错可能更容易用来源来诊断。@CashCow:没有看到无法辨别的来源。我猜问题出在源代码中,是由于一起使用了不正确的类型造成的。我刚刚复制了不同linux系统中的代码,即redhat 5.3和GNU 4.1.2。链接到3.x.x并不是一个问题,因为我使用的是全新的系统。注意,您必须使用g++而不是gcc编译和链接