我最近在我的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'
答案 0 :(得分:8)
您可能正在使用gcc
而不是g++
进行编译。实际的编译器是相同的,但是g++
告诉链接器使用默认的C ++库,gcc
只告诉它查看C库。只要您使用标准库的C ++特定部分,gcc
就会失败。
顺便说一句,C ++不支持旧C的default int
规则,因此您应该从main
指定返回类型。
答案 1 :(得分: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编译它。