MSYS2 安裝 gcc、make
下載
官方下載
清華大學(xué)開源軟件鏡像站:MSYS2 軟件倉庫
安裝
- MSYS2:
- 主要功能是提供一個在Windows操作系統(tǒng)上模擬類Unix環(huán)境的開發(fā)和構(gòu)建工具集。它提供了一個模擬POSIX系統(tǒng)的命令行接口和包管理器(Pacman)。
- MSYS2基于Cygwin技術(shù),但它更專注于構(gòu)建原生Windows應(yīng)用程序。
- 它的目標(biāo)是創(chuàng)建一個易于使用的開發(fā)平臺,使得開發(fā)者能夠在Windows上編譯和運(yùn)行那些原本在Unix/Linux環(huán)境下開發(fā)的開源軟件。
- MinGW-w64:
- 是一個項(xiàng)目,其目的是為Windows提供GCC(GNU Compiler Collection)和其他工具鏈的移植版本,以便能夠直接生成64位或32位Windows原生可執(zhí)行文件,無需依賴Cygwin或其他兼容層。
- MinGW-w64支持現(xiàn)代Windows特性,并解決了早期MinGW在64位系統(tǒng)支持上的局限性。
- 兩者的關(guān)系:
- MSYS2 集成了 MinGW-w64 工具鏈,使得用戶可以通過簡單的命令行操作安裝和使用 GCC 編譯器來編譯 Windows 原生程序。
- 使用 MSYS2 的開發(fā)者可以利用其提供的包管理系統(tǒng)快速獲取并更新 MinGW-w64 等工具鏈及相關(guān)庫文件,簡化了Windows下的跨平臺開發(fā)流程。
MSMYS2
下載后直接運(yùn)行安裝即可,我裝在: D:\msys64
安裝好后,出現(xiàn)多個快捷方式,下表簡單是介紹
快捷方式 | 描述 |
---|---|
MSYS2 CLANG64 | 使用Clang編譯器的64位版本環(huán)境,提供基于LLVM的C、C++和Objective-C編譯器工具鏈,用于生成Windows 64位原生可執(zhí)行文件。 |
MSYS2 CLANGARM64 | 同樣基于Clang,但針對ARM64架構(gòu)(如Windows on ARM),為ARM64平臺提供編譯環(huán)境。 |
MSYS2 MINGW32 | 運(yùn)行32位MinGW-w64工具鏈的命令行環(huán)境,適用于編譯面向32位Windows系統(tǒng)的原生應(yīng)用。 |
MSYS2 MINGW64 | 提供64位MinGW-w64工具鏈的命令行環(huán)境,主要用于編譯運(yùn)行在64位Windows系統(tǒng)上的原生應(yīng)用,是常用的開發(fā)選項(xiàng)。我用的這個
|
MSYS2 MSYS | 基于POSIX兼容層的Shell環(huán)境,提供較為完整的Unix/Linux-like環(huán)境,支持那些需要較高程度POSIX兼容性的軟件編譯或腳本執(zhí)行。 |
MSYS2 UCRT64 | 使用Universal CRT (UCRT) 的64位工具鏈環(huán)境,該環(huán)境下的工具鏈依賴較新的Windows SDK,可能包含對最新Windows特性和API的支持。 |
接下來的操作需要用到 pacman 命令,此表是簡單的介紹,先了解一下:
命令 | 功能描述 |
---|---|
pacman -Syu |
同步并更新系統(tǒng)所有的軟件包到最新版本(包括內(nèi)核與核心庫) |
pacman -S package_name |
安裝指定的單個軟件包及其依賴 |
pacman -S package1 package2 |
安裝多個指定的軟件包及它們的依賴 |
pacman -R package_name |
卸載指定的軟件包,但保留其配置文件 |
pacman -Rs package_name |
卸載指定的軟件包,并刪除其配置文件 |
pacman -Ss search_term |
搜索軟件倉庫中包含指定關(guān)鍵詞的軟件包 |
pacman -Q 或 pacman -Qe
|
列出已安裝的所有軟件包 |
pacman -Qi package_name |
查詢特定軟件包的詳細(xì)信息 |
pacman -Qo /path/to/file |
查看指定文件屬于哪個已安裝的軟件包 |
pacman -Scc |
清理緩存,刪除所有未使用的包文件 |
pacman -Sy |
只同步軟件數(shù)據(jù)庫,不進(jìn)行更新操作 |
pacman -Su |
更新所有已安裝且有更新版本的軟件包 |
pacman -Syu --noconfirm |
強(qiáng)制更新系統(tǒng)且不詢問用戶確認(rèn) |
pacman 添加鏡像源
# 編輯源
nano /etc/pacman.d/mirrorlist.mingw64
將清華鏡像添加到開頭 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
最后 Ctrl + X
退出如有提示按 Y
保存
GCC
1. 安裝
我是 win11 x64系統(tǒng),所以我裝這個版本 mingw-w64-x86_64-gcc
# 查看
pacman -Ss mingw-w64-x86_64-gcc
# 安裝前,先更新數(shù)據(jù)庫和軟件包,確保是最新的(如果需要)
pacman -Syu
# 如果有核心包更新,會關(guān)閉 MSYS2,自己手去打開 MSYS2 后再執(zhí)行一下,繼續(xù)完成非核心包更新
pacman -Syu
# 安裝
pacman -S mingw-w64-x86_64-gcc
2. 查看結(jié)果
安裝完成后 D:\msys64\mingw64\bin
目錄下就有東西了
打開 D:\msys64\mingw64\bin
目錄,
在地址欄輸入 cmd
打開命令行,輸入命令查看版本gcc --version
、g++ --version
3. 環(huán)境變量
將 D:\msys64\mingw64\bin
添加到環(huán)境變量。
-
WIN + R
打開運(yùn)行窗口.。 - 輸入
rundll32 sysdm.cpl,EditEnvironmentVariables
按Ctrl + Shift + 回車
打開窗口。 - 在
系統(tǒng)變量
中找到Path
點(diǎn)編輯。 - 新增一條記錄,寫入
D:\msys64\mingw64\bin
GDB
# 安裝
pacman -S mingw-w64-x86_64-gdb
VSCode 調(diào)試
所需插件
安裝 C/C++ Extension Pack 就夠了,C/C++ 擴(kuò)展包
包含了在 Visual Studio Code 中進(jìn)行 C++ 開發(fā)的一系列熱門擴(kuò)展:
- C/C++
- C/C++ Themes
- CMake
- CMake Tools
創(chuàng)建項(xiàng)目
- 新建一個文件夾
demo1
用 VSCode 打開。 - 創(chuàng)建
helloworld.cpp
文件,內(nèi)容:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Hello World" << endl;
}
調(diào)試代碼
因?yàn)?D:\\msys64\\mingw64\\bin\\g++.exe
、D:\\msys64\\mingw64\\bin\\gdb.exe
已經(jīng)添加到環(huán)境變量。所以下面的配置中也可以改為相對路徑
。
1. tasks.json 配置任務(wù)
終端 > 配置默認(rèn)生成任務(wù)…
完成后將自動生成 tasks.json,內(nèi)容如下:(注意檢查 command
、cwd
是否正確)
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活動文件",
"command": "D:\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "編譯器: D:\\msys64\\mingw64\\bin\\g++.exe"
}
],
"version": "2.0.0"
}
2. launch.json 配置調(diào)試
我們來設(shè)置 gdb 調(diào)試
如此可自動創(chuàng)建 launch.json,內(nèi)容如下:(注意檢查miDebuggerPath
是否正確)
{
"configurations": [
{
"name": "(gdb) 啟動",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "為 gdb 啟用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "將反匯編風(fēng)格設(shè)置為 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
],
"version": "2.0.0"
}
3. 運(yùn)行
打開 helloworld.cpp
文件,按 F5
運(yùn)行。
更進(jìn)一步的 C/C++ 設(shè)置
c_cpp_properties.json
用于更改編譯器路徑、包含路徑、C++ 標(biāo)準(zhǔn)(默認(rèn)為 C++17)等設(shè)置。
- 命令面板:
Ctrl + Shift + P
輸入C/C++
選擇: - 添加一個配置,并設(shè)置后會生成
c_cpp_properties.json
文件 -
c_cpp_properties.json
內(nèi)容:
{
"configurations": [
{
"name": "g++",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.19041.0",
"compilerPath": "D:/msys64/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
參考資料
中國科學(xué)技術(shù)大學(xué) http://mirrors.ustc.edu.cn/
清華大學(xué) https://mirrors.tuna.tsinghua.edu.cn/
Using GCC with MinGW
launch.json and tasks.json 使用 ${variableName} 語法文章來源:http://www.zghlxwxcb.cn/news/detail-794622.html
MSYS2安裝gcc、make環(huán)境
【VSCode】C++環(huán)境配置(小白必看)文章來源地址http://www.zghlxwxcb.cn/news/detail-794622.html
到了這里,關(guān)于C++ 開發(fā) + VSCode 調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!