You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在VSCode中搭配MSYS2 UCRT64使用g++而非VS的cl.exe编译C++项目

如何在VSCode中搭配MSYS2 UCRT64使用g而非VS的cl.exe编译C项目

嘿,我看你已经搞定了VSCode、MSYS2 UCRT64的安装,甚至还在CMake配置里尝试指定编译器了,这就成功一半啦!下面我给你把整个流程捋顺,确保你能稳稳用MSYS2里的g替代VS自带的cl.exe来编译你的C项目~

第一步:完善CMakeLists.txt配置

你已经写了核心的编译器指定代码,我帮你补全下,让CMake能更顺畅地识别工具链:

cmake_minimum_required(VERSION 3.10)
# 明确指定C/C++编译器为MSYS2 UCRT64下的版本
set(CMAKE_C_COMPILER "D:/msys64/ucrt64/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "D:/msys64/ucrt64/bin/g++.exe")
# 定义项目名称
project(MyCppProject)

# 添加你的源文件,这里假设主文件是main.cpp,可根据实际修改
add_executable(MyCppProject main.cpp)

这段配置会强制CMake使用你指定的g++,而不是默认调用VS的cl.exe。

第二步:配置VSCode的tasks.json

你之前的配置片段不完整,我给你补全一个实用的版本,用来完成CMake构建文件生成和项目编译的全流程:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "CMake: 生成构建文件",
            "type": "shell",
            "command": "cmake -G \"MinGW Makefiles\" -B build .",
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [],
            "detail": "调用CMake生成适配MinGW的构建文件"
        },
        {
            "label": "CMake: 编译项目",
            "type": "shell",
            "command": "cmake --build build",
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [],
            "dependsOn": "CMake: 生成构建文件",
            "detail": "使用g++编译项目"
        }
    ]
}

这里的-G "MinGW Makefiles"是关键,它告诉CMake要生成适配MSYS2工具链的构建文件,彻底避开VS的cl.exe。

第三步:小技巧让环境变量更顺畅

你可以打开MSYS2 UCRT64的专属终端,在里面输入code命令启动VSCode,这样VSCode会直接继承MSYS2的环境变量,编译器路径识别会更准确,不会出现找不到g++的情况。

最后,在VSCode里按下Ctrl+Shift+B,选择「CMake: 编译项目」任务,就能用MSYS2的g编译你的C项目啦!

备注:内容来源于stack exchange,提问作者Administrator

火山引擎 最新活动