记一次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 <iostream>
#include <vector>

int main(){
    vector<int> 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 <iostream>
#include <vector>

int main(){
    std::vector<int> 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 旁边,正常运行:

posted @ 2020-07-13 04:23  岭南灯火  阅读(2195)  评论(0编辑  收藏  举报