Windows10下通过MinGW-x64搭建c/c++环境配置和使用方法
说明
这里使用windows10作为基础环境,使用mingw-x64作为编译器,使用vs code作为文本编辑器。顺便提一句为什么不直接使用visual studio,因为它比较重量级,且包含了微软自己的c++内容,并不是很适合作为通用使用。
配置
首先下载mingw-x64,对应的网址https://sourceforge.net/projects/mingw-w64/files/,里面包含很多的版本
这里对应下载的文件如下:
下载到的是绿色包,直接解压到某个目录即可,对应的内容:
将bin路径添加到环境变量中:
这样在vs code终端中就可以通过命令查看和使用g++和gdb等工具:
接下来是配置vs code,这主要参考https://code.visualstudio.com/docs/cpp/config-mingw。首先需要下载c/c++插件:
之后点击vs code的“终端->配置默认生成任务”来创建tasks.json,它会被放到当前代码目录的.vscode文件夹中,配置如下:
{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "c/c++: g++.exe build active file", "command": "d:\\program files\\mingw64\\bin\\g++.exe", "args": ["-g", "${file}", "-o", "${filedirname}\\${filebasenamenoextension}.exe"], "options": { "cwd": "${workspacefolder}" }, "problemmatcher": ["$gcc"], "group": { "kind": "build", "isdefault": true } } ] }
这里需要注意的是command这一栏,这里使用了前面下载到的g++工具。其它的参数也可以修改,不过这里不说明,可以在参考网站看到更详细的内容。
以上是编译配置,下面是debug配置,这需要创建launch.json文件。点击“运行->添加配置”添加c++的debug配置,内容如下:
{ "version": "0.2.0", "configurations": [ { "name": "g++.exe - build and debug active file", "type": "cppdbg", "request": "launch", "program": "${filedirname}\\${filebasenamenoextension}.exe", "args": [], "stopatentry": false, "cwd": "${workspacefolder}", "environment": [], "externalconsole": false, "mimode": "gdb", "midebuggerpath": "d:\\program files\\mingw64\\bin\\gdb.exe", "setupcommands": [ { "description": "enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignorefailures": true } ], "prelaunchtask": "c/c++: g++.exe build active file" } ] }
这里也需要注意gdb.exe工具的路径。
这样基本的配置就可以了,另外还有一个配置是c_cpp_properties.json,它是c/c++的总体配置,内容如下:
{ "configurations": [ { "name": "win32", "includepath": [ "${workspacefolder}/**" ], "defines": [ "_debug", "unicode", "_unicode" ], "windowssdkversion": "8.1", "compilerpath": "d:/program files/mingw64/bin/g++.exe", "cstandard": "c17", "cppstandard": "c++17", "intellisensemode": "windows-gcc-x64" } ], "version": 4 }
除了compilerpath和intellisensemode,其它暂时不变。
到这里配置完成。
使用
一个代码示例:
#include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg = {"hello", "c++", "world", "from", "vs code"}; for (const string &word : msg) { cout << word << " "; } return 0; }
使用“ctrl+shift+b”编译文件:
编译得到同名的文件(后缀从cpp换成了exe),执行即可。
如果要debug,需要首先打断点:
然后按f5开始调试:
具体调试过程这里不赘述。
c++ primer代码使用
后续使用《c++ primer》第5版作为c++学习的使用资料。书对应的源代码可以在c++ primer, 5th edition | informit下载到,这里选择gcc的版本:
该源代码中存在makefile文件,可以直接通过make来编译。但是默认并没有make命令,mingw-x64中其实是包含make工具的,但是名称是mingw32-make.exe:
使用该工具就可以通过makefile编译《c++ primer》源代码,如下所示:
之后就可以通过文件名+exe来执行程序。