1

我最近在我的 Windows 32 机器上安装了 MinGW 和 MSYS,它似乎运行良好。

在 C++ 编译器上,我包含了一个向量容器并且没有出错。但是当我尝试使用它时,我会遇到编译时错误。

所以,代码

#include <vector>  // include vector.h  
#include <stdio.h>  // include stdio.h

using namespace std;

main()  {

//   vector<int> A;  

printf("\nHeya ..");

}

运行得很好。但是,当我取消注释第 8 行 - 向量声明行时,我在编译时收到以下错误(缩短):

undefined reference to 'operator delete(void*)'
undefined reference to '__gxx_personality_v0'
4

2 回答 2

8

您可能正在编译gcc而不是g++. 实际的编译器是相同的,但g++告诉链接器使用默认的 C++ 库,gcc只是告诉它查看 C 库。一旦您使用标准库的特定于 C++ 的部分,gcc就会失败。

顺便说一句,C++ 不支持default int旧 C 的规则,所以你应该真正指定返回类型 from main

于 2012-08-25T18:29:17.417 回答
0

我不明白你是如何编译你的代码的。您的主要方法无效,签名不正确,并且您没有返回任何内容。

应该是这样的:

#include <vector>  // include vector.h  
#include <stdio.h>  // include stdio.h

using namespace std;

int main(int, char**)  {

//   vector<int> A;  

printf("\nHeya ..");
return 0;
}

你也需要用 g++ 而不是 gcc 来编译它。

于 2012-08-25T18:29:30.210 回答