針對Windows
系統開發C/C++編譯平台建立
比起 Linux 或是類Unix 系統Windows對於C語言支援缺乏單一最佳方案。目前來說,有以下四種方案:
Microsoft Visual C++
是微軟公司的C++ 開發工具,具有整合式開發環境,可提供編輯C語言,C++ 以及C++ /CLI等程式語言。VC++ 整合了便利的除錯工具,特別是整合了微軟Windows作業系統應用程式介面(Windows API)、三維動畫DirectX API,微軟.NET框架。目前最新的版本是Microsoft Visual C++ 2022
一般來說會建議直接使用 Visual Studio
Cygwin 是一套運行在 Windows 上的類 Unix 子系統,主要的用途是在 Windows 上使用類 Unix 系統的命令列環境、命令列工具、開發工具等。為了要讓 Cygwin 支援 POSIX,Cygwin 附帶了一隻額外的 DLL (動態連結函式庫)。故在 Cygwin 下編譯的程式皆會依賴該 DLL。Cygwin的主要應用是在Windows系統上提供類Unix的開發環境和工具,使用戶能夠在Windows平台上開發和運行類Unix的程式。它可以讓用戶在Windows上使用Unix/Linux下常見的命令列工具、開發工具和編譯器,如gcc、make、bash等,以及支援POSIX標準的函式庫。
與Visual C++相比,Cygwin有幾個主要的區別:
綜上所述,Cygwin適用於希望在Windows平台上進行Unix/Linux風格開發的用戶,而Visual C++適用於專注於Windows平台開發的用戶。
Windows Subsystem for Linux (WSL) 是微軟為 Windows 10 和 Windows Server 2019 提供的功能,允許在 Windows 上運行本機 Linux 二進制應用程序。這為開發人員和系統管理員提供了在 Windows 操作系統上使用 Linux 工具和指令碼的能力,而無需使用虛擬機器或雙重開機。
WSL 提供了兩個主要的子系統版本:WSL 1 和 WSL 2。
WSL 1:這個版本提供了一個 Linux 系統調用層,它在 Windows 上翻譯 Linux 系統調用到 Windows 系統調用,從而實現了 Linux 二進制文件的運行。然而,由於這種翻譯的性能限制,WSL 1 在文件系統性能和 Docker 支持方面可能存在一些限制。
WSL 2:這個版本引入了虛擬化技術,將一個真正的 Linux 內核嵌入到 Windows 中,從而實現了更好的性能和完整的系統調用相容性。WSL 2 也支持與 Docker 完全兼容,並且在文件系統性能方面有顯著改進。
使用WSL,用戶可以在 Windows 中運行常見的 Linux 發行版,如 Ubuntu、Debian、Fedora 等,並且可以在這些發行版中安裝和運行 Linux 軟件包和工具,從而充分發揮了兩個操作系統的功能。這對於開發人員和系統管理員來說是一個強大的工具,因為它簡化了在混合環境中工作的流程,同時還提供了更好的性能和兼容性。
MSYS2是一個在Windows平台上提供類Unix工具和環境的工具集合,旨在提供一個類似於Linux或Unix的開發環境,讓使用者能夠在Windows系統上進行開發工作。
MSYS2包含了一系列的工具和軟件,包括GNU工具和套件管理器。主要特點如下:
提供類Unix環境: MSYS2提供了一個類Unix的命令行環境,使用者可以在Windows系統上使用類Unix的命令行工具和指令碼語言,如bash、grep、awk等。
套件管理器: MSYS2具有自己的套件管理器,允許使用者方便地安裝、更新和管理各種軟件包。這包括了許多常見的開發工具、編譯器、庫和應用程序,如gcc、make、vim等。
整合開發環境: 使用者可以在MSYS2中進行軟件開發,包括C/C++、Python、Ruby等語言的開發。它提供了一個完整的開發環境,包括編輯器、調試器和版本控制系統等工具。
跨平台支援: MSYS2具有良好的跨平台支援,允許使用者在Windows、Linux和其他Unix-like系統上共享相同的開發環境和工具。
總的來說,MSYS2是一個強大的工具,為在Windows上進行開發工作的使用者提供了方便和彈性。它的類Unix環境和套件管理器使得在Windows系統上進行開發工作變得更加流暢和高效。
在本文內我們將介紹如何使用 Msys2 做為開發環境。
{
"commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64",
"font":
{
"face": "MesloLGS NF",
"size": 12.0
},
"guid": "{71160544-14d8-4194-af25-d05feeac7233}",
"icon": "C:/msys64/mingw64.ico",
"name": "Mingw64",
"startingDirectory": "%USERPROFILE%"
}
在家目錄
下修改 bashrc
新增下列指令
chcp.com 65001
pacman -S zsh
新增 bashrc
使預設開啟ZSH
if [ -t 1 ]; then
exec zsh
fi
Oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
p10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
語法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
自動補全
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
修改zshrc
內容
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
大功告成
GCC套件
pacman -Sy -y mingw-w64-x86_64-gcc
pacman -Sy -y --needed base-devel mingw-w64-x86_64-toolchain
修改環境變數
C:\msys64\mingw64\bin\
pacman -S vim openssh git make
更新Msys2
pacman -Suy
在 settings.json
將MINGW64修改為Visual Studio Code 預設終端機
"terminal.integrated.defaultProfile.windows": "MINGW64",
"terminal.integrated.profiles.windows": {
"MINGW64": {
"path": "C:\\msys64\\usr\\bin\\bash.exe",
"label": "MSYS2",
"args": [
"--login",
"-i"
],
"env": {
"MSYSTEM": "MINGW64",
"CHERE_INVOKING": "1",
"MSYS2_PATH_TYPE": "inherit"
}
}
}
如下,也一併確認是否成功將套件匯入。
修改
C:\msys64\etc\ssh
的ssh_config
將所有的 ~
修改為家目錄位置,如:\c\Users\YOU
如下:
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_ecdsa
IdentityFile ~/.ssh/id_ed25519
.
.
.
UserKnownHostsFile /c/Users/Defu/.ssh/known_hosts.d/%k
改為
IdentityFile /c/Users/YOU/.ssh/id_rsa
IdentityFile /c/Users/YOU/.ssh/id_dsa
IdentityFile /c/Users/YOU/.ssh/id_ecdsa
IdentityFile /c/Users/YOU/.ssh/id_ed25519
.
.
.
UserKnownHostsFile /c/Users/YOU/.ssh/known_hosts
至此,可以在Windows上使用大部分Linux相關環境與編輯能功能了