记一次Windows MinGW g++编译c++代码
到这里下载GCC预编译包:https://sourceforge.net/projects/mingw-w64/files
下载这个:
x86_64 是64位,i686 是32位的意思
posix 是跨平台的意思,win32 仅限Windows
尾缀是指生成的可执行程序和dll所运行的位数,sjlj可以运行在32位也可以运行在64位,seh仅限运行在64位,drawf仅限32位
解压并配置环境变量
将其内 mingw/bin
目录配到 PATH 环境变量下,使用命令 g++ -v
,得到版本信息:
写C++代码
这里用 stl
库中的 vector
容器。
#include
#include
int main(){
vector vec1(10, 4);
for (int i = 0; i< vec1.size(); i++){
std::cout << vec1[i] << std::endl;
}
system("pause");
return 0;
}
编译
g++ .\hello.cpp -o hello
报失败...
排查原因,是因为 vector
类前要加 std::
#include
#include
int main(){
std::vector vec1(10, 4);
for (int i = 0; i< vec1.size(); i++){
std::cout << vec1[i] << std::endl;
}
system("pause");
return 0;
}
然后编译成功了,在 hello.cpp
同级别目录下生成了 hello.exe
文件
运行
双击运行,按理说应该出现10行4,然后等按任意键结束,但是报错:
排查原因,是因为一个动态链接库有问题...
找到g++的动态链接库 mingw/bin/libstdc++-6.dll
,放到 hello.exe
旁边,正常运行: