设为首页 加入收藏

TOP

vscode c/c++ MinGW/MSYS2 配置 | 解决中文乱码/找不到dll问题(不设置环境变量)(一)
2023-07-23 13:27:41 】 浏览:78
Tags:vscode c/c MinGW/MSYS2 配置 解决中 文乱码 dll 问题

vscode c/c++ MinGW/MSYS2 配置 | 解决中文乱码/找不到dll问题(不设置环境变量)

本文主要是在不设置环境变量的情况下配置vscode并解决常见问题

MinGW/MSYS2 安装

MSYS2 是一个类似于Linux的shell环境,可以在Windows上使用pacman安装软件包。它包含了一个mingw-w64工具链,可以在Windows上编译出可执行文件。
MinGW-w64 - for 32 and 64 bit Windows
选择MinGW-W64 GCC-8.1.0 或以上版本,x86_64-posix-seh

[科普][FAQ]MinGW vs MinGW-W64及其它

c/c++ vscode环境搭建

c/c++ vscode环境搭建参考这篇知乎文章: 给萌新的C/C++环境搭建攻略(VSCode和MSYS2)

msys2 配置

msys2安装完成后,开始菜单会有多个启动方式:

MSYS2 MSYS
MSYS2 MinGW 64bit
MSYS2 MINGW 32bit
MSYS2 UCRT64
MSYS2 Clang64
MSYS2 ClangARM64

推荐使用 MSYS2 UCRT64(Universal C Runtime) 。简单来说就是在msys(紫色图标) 使用pacman 指定安装ucrt的软件。比如mingw工具链 pacman -S mingw-w64-ucrt-toolchain,这里的软件包会被安装到 \msys64\ucrt64\ 目录下。所以使用时要用UCRT64(黄色图标) 启动。

msys2 中 mingw64 ucrt64 clang64 的区别

最新版官方已经配置好了镜像源,不用担心下载速度的问题。

可以参考
windows上msys2配置及填坑
msys2 环境配置记录 - wswind - 博客园
使用msys2打造优雅的开发环境

vscode 配置文件

文章中没有提到vscode的配置文件的编写,这里补充一下。

在 vsocde 运行 c/c++ 代码,需要配置 launch.json 和 tasks.json 两个文件。
这两个文件在当前文件夹内的.vscode 文件夹下。 这里给出我的配置文件,修改一下路径就可以使用了。
这里使用绝对路径的写法,不依赖环境变量。(不推荐使用环境变量,到后面会有坑)

launch.json

{
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe Debug", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
            "cwd": "${workspaceFolder}", // 目标的工作目录
            "environment": [
                {
                    "name": "PATH",
                    "value": "C:/programs/msys2/ucrt64/bin;${env:PATH}" // 环境变量,将会在程序运行前进行设置
                }
            ], // 环境变量,将会在程序运行前进行设置
            "externalConsole": false, // 如果为 true,则为调试对象启动控制台即会有小黑框。如果为 false,它在 Linux 和 Windows 上会显示在集成控制台中。
            "MIMode": "gdb", // 指示 MIDebugEngine 要连接到的控制台调试程序。允许的值为 "gdb"、"lldb"。
            "miDebuggerPath": "C:/programs/msys2/ucrt64/bin/gdb.exe", // MI 调试程序(如 gdb)的路径。如果未指定,将首先在路径中搜索调试程序。
            "setupCommands": [
                { // 模板自带,可以更好地显示STL容器的内容
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++.exe Debug" // 调试会话开始前执行的任务,一般为编译程序.g++.exe build active file与tasks中的同名任务对应,即在调试前会执行tasks中的这个任务
        },
        {
            "name": "g++.exe Release", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
            "cwd": "${workspaceFolder}", // 目标的工作目录
            "environment": [
                {
                    "name": "PATH",
                    "value": "C:/programs/msys2/ucrt64/bin;${env:PATH
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇驱动开发:内核ShellCode线程注入 下一篇驱动开发:内核解锁与强删文件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目