设为首页 加入收藏

TOP

vscode c/c++ MinGW/MSYS2 配置 | 解决中文乱码/找不到dll问题(不设置环境变量)(二)
2023-07-23 13:27:41 】 浏览:81
Tags:vscode c/c MinGW/MSYS2 配置 解决中 文乱码 dll 问题
}" // 环境变量,将会在程序运行前进行设置 } ], // 环境变量,将会在程序运行前进行设置 "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 Release" // 调试会话开始前执行的任务,一般为编译程序.g++.exe build active file与tasks中的同名任务对应,即在调试前会执行tasks中的这个任务 }, ] }

tasks.json

{
    // 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "tasks": [
        {
            "type": "shell",
            "label": "g++.exe Debug", // 任务名称,与launch.json中对应,使用g++编译cpp文件,并在同目录下生成可执行文件
            "command": "g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g", // 生成和调试有关的信息
                //
                // "-fexec-charset=GBK", // 处理mingw中文编码问题
                // "-finput-charset=UTF-8", // 处理mingw中文编码问题
                //
                "-Wall", // 显示所有的警告信息
                "${file}",
                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}", // 指定任务的工作目录
                "env": {
                    "PATH": "C:/programs/msys2/ucrt64/bin;${env:PATH}" // 环境变量,将会在程序运行前进行设置
                },
            },
            "problemMatcher": [
                "$gcc"
            ],
            // 所以以上部分,就是在shell中执行 g++ -g -Wall -fexec-charset=GBK -finput-charset=UTF-8 ".cpp" -o ".exe"
            // 任务分组
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        },
        {
            "type": "shell",
            "label": "g++.exe Release", // 任务名称,与launch.json中对应,使用g++编译cpp文件,并在同目录下生成可执行文件
            "command": "g++",
            "args": [
                "-fdiagnostics-color=always",
                "-O3", // 优化等级3
                "-static", // 静态链接
                "-lpthread", // 链接pthread库
                //
                // "-fexec-charset=GBK", // 处理mingw中文编码问题
                // "-finput-charset=UTF-8", // 处理mingw中文编码问题
                //

                "${file}",
                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}", // 指定任务的工作目录
                "env": {
                    "PATH": "C:/programs/msys2/ucrt64/bin;${env:PATH}" // 环境变量,将会在程序运行前进行设置
                },
            },
            "problemMatcher": [
                "$gcc"
            ],
            // 所以以上部分,就是在shell中执行 g++ -g -Wall -fexec-charset=GBK -finput-charset=UTF-8 ".cpp" -o ".exe"
            // 任务分组
            "group": {
                "kind": "build",
            },
            "detail": "Release版本生成的任务。"
        },
    ],
    "version": "2.0.0"
}

mingw中文编码问题

最新版vscode会自动识别改变终端编码为utf-8,如果运行结果没有乱码,那么可以不用管这个问题。

乱码的主要原因是vscode默认使用的是utf-8编码,而 windows默认使用的是gbk编码。所以需要在vsco

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇驱动开发:内核ShellCode线程注入 下一篇驱动开发:内核解锁与强删文件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目