美文网首页
MinGW-w64 与编译器遇到的一些坑

MinGW-w64 与编译器遇到的一些坑

作者: 思想永不平凡 | 来源:发表于2020-02-05 17:46 被阅读0次

    又是一个平常的下午,我又像往常一样继续更 C++ STL 部分其他内容,在编译一个文件时,突然报出该文件的版本不兼容您的64位系统错误,顿时开始了 "debug" 之路,在经过一下午折腾后,算是解决了这个问题。



    平常写 c++ 用的是 atom + 插件的方式,一直都安然无恙。直到今天中午,在编译一个文件时,报出来编译的文件与电脑的64位系统不兼容问题。

    图片.png

    仔细看了看程序,并没有使用 “上古” 的头文件或者函数啊,只是 STL 里面的一些东西。于是乎,我打开了晚年不用的 Dev-C++,这个编译器太上古了,很少使用,使用 Dev-C++,依然有问题,之后试了试 Code::Blocks ,依然有问题。那么这种情况,大概率它俩无关了,想到它俩用的基本都是 mingw,就从这入手了吧。

    在升级之后依然不行,那就直接点吧,卸载重装!
    进入 MinGW-w64 下载网站

    图片.png

    有两种安装方式:
    一种是在线安装。
    另一种是下载压缩包,配置环境变量。

    两种我都试了,先说第一种(这里会列举一些我遇到的问题,当然你不一定会遇到)
    下载得到 exe 文件。


    图片.png

    双击后,点击 "next" ,可能会遇到这样一个问题:

    图片.png

    网上说,可以试着使用以管理员身份运行,我试了试,有一次成功了,如果你没这个问题,会得到下面的界面:

    图片.png

    选择相关参数,主要是根据你的系统选。
    如果一切顺利,那你就大功告成了,可是我又遇到问题了。。。
    弹窗提示一个文件安装不了,那一般这种问题跟网络有关系了,就可以下载压缩包离线安装了。
    下载解压后,得到以下文件目录:

    图片.png

    配环境变量,将 bin所在的文件夹下的路径加入到环境变量 path 中。

    图片.png 图片.png

    打开 cmd 或者 powershell ,出现以下类似内容:

    图片.png

    接下来一切照常。
    回到开头处,Dev-C++ 其实是一个很不错的编译器,开箱即用,但是呢,c++ 版本有点低,有什么办法可以弥补呢。
    打开 Dev-C++ 的安装文件夹,发现了一个很眼熟的东西:

    图片.png 图片.png

    没错,就是 MinGW64,可以理解为下载安装 Dev-C++ 时,自带的。
    在 Dev-C++ 的主界面的工具的编译选项中,


    图片.png

    可以发现,其自带的版本有些“老”了。而它是可以让我们自定义编译器的,为什么不换成最新的呢?
    其实过程也很简单。
    新建一个编译器:


    图片.png

    之后,在程序部分,把 gcc,g++ 等相关工具换成自己的:

    图片.png

    最后,在目录部分,将四个子栏换成自己的路径:

    图片.png

    每次更改记得保存。
    编译一个文件:

    处理 C++ 源文件...
    --------
    - C++ 编译器: G:\mingw64\bin\g++.exe
    - 命令: g++.exe "C:\Users\hasee\Desktop\1.cpp" -o "C:\Users\hasee\Desktop\1.exe"  -I"G:\mingw64\include" -I"G:\mingw64\x86_64-w64-mingw32\include" -I"G:\mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0\include" -I"G:\mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0\include\c++" -L"G:\mingw64\lib" -L"G:\mingw64\x86_64-w64-mingw32\lib" -static-libgcc
    

    现在,Dev-C++ 的编译器已经更换了。
    同时,除了 Dev-C++,Code::Blocks 也是可以的。

    图片.png

    操作类似。

    相关文章

      网友评论

          本文标题:MinGW-w64 与编译器遇到的一些坑

          本文链接:https://www.haomeiwen.com/subject/whisxhtx.html