跳转至

编译环境准备

在不同的操作系统上,最好还是使用操作系统厂商开发的编译工具链。例如,尽管我们可以通过 mingw 等工具在 Windows 上使用 g++ 命令,但为了最好的兼容性,还是选择 MSVC 系列比较好。

鉴于每个人喜欢的操作系统不同,使用 Windows 编程也并没有什么问题。在编写一些操作系统无关的程序的时候,可以在自己更熟悉的环境下编程。

Windows

在 Windows 上,我们一般会安装(已经过时的)DevC++,或者大名鼎鼎的 Visual Studio 这些 IDE。它们不仅能提供强大的编程环境,同时也会帮我们安装好编译器。不过,其实我们也可以在 Windows 上单独安装编译器,然后使用 Visual Studio Code 等编辑器来编程。

安装 Microsoft Build Tools

在 Windows 上,并不一定需要安装 Visual Studio 才能编译程序,可以安装 Microsoft Build Tools,里面就包含了 MSVC 编译器。

点击上面的链接下载安装器之后,打开安装器,就可以看到安装界面:

按照默认的选项安装桌面 C++ 开发工具即可。

配置 VSCode

安装完 Build Tools 之后,就可以按照官方教程来配置 VSCode 使用 MSVC 编译器了。

Linux

WSL

WSL (Windows Subsystem for Linux) 是一个在 Windows 上能够运行原生 Linux 二进制可执行文件(ELF 格式)的兼容层。它是由微软与 Canonical 公司合作开发,其目标是使纯正的 Ubuntu、Debian 等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

可以在 powershell 中依次运行下述指令,安装 WSL1 版本的 Debian。

wsl --set-default-version 1
wsl --install --distribution Debian

关于 WSL 的使用,最佳的教材即为官方文档,另外很推荐配合 VSCode 的 Remote-WSL 插件。假设你已经看过官方文档,以下内容给出一些日常使用经验。

WSL 的大部分功能都可以被完整 Linux 或装在虚拟机中的 Linux 代替,反之也一样。因此上述 Linux 的使用技巧均可使用在 WSL 中。

WSL 还存在一些局限性,例如 WSL1 不支持 GPU 和很多系统调用,WSL2 访问 Windows 文件性能差,两者(目前为止)均不能访问 USB 设备等。那除了日常使用更方便之外,WSL 还有其它的必要性吗?答案自然是有。当你的项目同时涉及到 Windows 和 Linux 环境下的混合编译时,WSL 一定是你的最佳选择(考虑到 WSL2 访问 Windows 文件性能极差,因此虽然现在微软主推 WSL2,但我仍然建议使用 WSL1);又例如,你可能会经常搞坏 Linux 环境,每次重装系统(无论物理机还是虚拟机)都会极大的消耗你的精力,而 WSL 不过是点一下卸载再重新点一下安装的事,前后几乎只有几分钟,并且还提供了打包备份的功能(wsl --exportwsl --import)。

WSL 访问 Windows

WSL 内可以通过 powershell.exe 调用 Windows 下的终端。

$ powershell.exe ls -File


    目录: D:\server-programming-guide


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2021/12/21      5:41          20138 LICENSE
-a----        2021/12/21      5:41           6505 mkdocs.yml
-a----        2021/12/21      5:41           1410 README.md
-a----        2021/12/21      5:41            156 requirements.txt

由于当前 WSL1 和 WSL2 都不支持很多操作(例如访问 USB 设备)。那么也可以借助 powershell.exe 去间接访问挂载在 Windows 环境中的软件环境和硬件外设。

Windows 访问 WSL

同理,Windows 下也可以通过 wsl 调用 Linux 下的工具链。

PS D:\server-programming-guide> wsl ls -l
total 32
drwxrwxrwx 1 wuk wuk  4096 Dec 21 05:41 docs
-rwxrwxrwx 1 wuk wuk 20138 Dec 21 05:41 LICENSE
-rwxrwxrwx 1 wuk wuk  6505 Dec 21 05:41 mkdocs.yml
-rwxrwxrwx 1 wuk wuk  1410 Dec 21 05:41 README.md
-rwxrwxrwx 1 wuk wuk   156 Dec 21 05:41 requirements.txt

例如,你的 Windows 没有配置 git,又需要临时下载一个项目,你可以像这样使用 WSL 中的 git 下载文件,无需单独开一个 WSL 终端。

wsl git clone https://github.com/howardlau1999/server-programming-guide.git

从这种意义上来说,你可以把 wsl 当做 windows 下的一个超级包管理器,可以通过 wsl 安装使用 linux 下的工具链。当然要注意的是,如果项目中没有特别约束,那么这样做的一切设置(例如行末回车是CRLF还是LF)都是按照 Linux 中的设置来的,因此如果在 Windows 中直接打开的话可能会出现乱码的情况,此时换一个可以正确处理的编辑器(如 vscode)可解决。

macOS

macOS 是一个类 Unix 系统,因此非常适合进行服务器程序的开发。在 macOS 上进行开发,一般使用 Apple 的 LLVM 工具链。

需要注意的是,macOS 上的 g++ 命令实际上只是 clang++ 的一个别名(软链接),并非真正的 GNU GCC。Apple 这样做的目的是为了保持命令行的兼容性,但底层使用的实际上是 LLVM Clang 编译器。

安装 Command Line Tools

在 macOS 上,我们并不需要安装庞大的 Xcode 就可以获得编译器。只需要在终端中运行以下命令即可安装 Command Line Tools,其中包含了 GCC, Clang, Make, Git 等常用工具:

xcode-select --install

运行后会在弹出的窗口中点击“安装”即可。

安装完成后,我们可以通过在终端中运行以下命令来验证编译器和常用工具是否安装成功。你会发现 g++ --version 的输出中包含 Apple clang 字样,这印证了前文提到的 macOS 默认使用 Clang 的说明。

# 验证 C++ 编译器(注意观察输出,你会发现它实际上是 Clang)
g++ --version
# 验证 Git
git --version
# 验证 Make
make --version

安装 Homebrew

Homebrew 是 macOS 下非常流行的包管理器,我们可以使用它来安装 CMake, Ninja 等构建工具。

在终端中运行以下命令即可安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
中国大陆用户特别说明

如果你身处中国大陆,由于网络环境原因,上述官方安装命令可能会超时或失败。这种情况下,推荐使用 中国科学技术大学(USTC)开源软件镜像站 进行安装。

首先,在终端中运行以下命令设置环境变量,指定使用 USTC 镜像源:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"

设置好环境变量后,运行以下命令使用 USTC 托管的安装脚本进行安装:

/bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"

这样可以极大地提高安装速度并避免网络连接问题。

安装完成后,可以运行 brew --version 来验证是否安装成功。

安装常用工具

安装好 Homebrew 后,就可以安装我们需要用到的构建工具了。虽然 Command Line Tools 中已经包含了 Git,但为了获得更好的体验,我们也推荐使用 Homebrew 安装最新版本的 Git:

brew install cmake ninja git

安装完成后,依次运行以下命令验证:

cmake --version
ninja --version
# 验证新版本的 git
git --version

配置 VSCode

在 macOS 上使用 VSCode 开发 C++ 程序也非常方便。安装好上述工具后,只需要安装 VSCode 的 C/C++ 插件,通常就可以直接开箱即用。


最后更新: 2026-01-09 23:46:18
本页作者: Howard Lau, WuK