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安装的主要内容,如果未能解决你的问题,请参考以下文章

C语言编译器” MinGW-w64 C/C++”的安装

vs cxode + mingw64配置C语言环境

vs cxode + mingw64配置C语言环境

手动安装minGW

MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本

VSCode编译C/C++MinGW安装配置指南