c++mingw STL安装
Posted
技术标签:
【中文标题】c++mingw STL安装【英文标题】:c++ mingw STL installation 【发布时间】:2012-08-25 18:24:13 【问题描述】:我最近在我的 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'
【问题讨论】:
你不是偶然用 gcc 而不是 g++ 编译的,是吗? 试试 gcc -std=c++0x program.cpp 【参考方案1】:您可能使用gcc
而不是g++
进行编译。实际的编译器是相同的,但g++
告诉链接器使用默认的 C++ 库,gcc
只告诉它查看 C 库。一旦您使用标准库的特定于 C++ 的部分,gcc
就会失败。
顺便说一句,C++ 不支持旧 C 中的 default int
规则,因此您应该真正指定 main
的返回类型。
【讨论】:
【参考方案2】:我看不到您是如何编译代码的。您的主要方法无效,签名不正确,您没有返回任何内容。
应该是这样的:
#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 来编译它。
【讨论】:
唯一需要为 main 修复的是添加int
返回类型。参数和实际的 return 语句不是必需的,但也没有错。
@Anonymous 如果我定义了这些变量,编译器会警告我这些变量未被使用。另外,为什么要定义一些不会被使用的东西?如果我在 main 中实际使用它们,我只会定义 argc 和 argv。
那么为什么不int main(...)
??以上是关于c++mingw STL安装的主要内容,如果未能解决你的问题,请参考以下文章