<p>首先更新系统并安装build-essential、gdb;再通过VS Code的Remote - WSL扩展实现无缝编辑;将项目存于WSL文件系统以提升I/O性能;最后集成CMake与Vcpkg实现高效构建和依赖管理,从而在WSL中完成现代化C++开发环境搭建。</p>

在WSL(Windows Subsystem for Linux)里搭建C++开发环境,在我看来,简直是Windows用户拥抱Linux开发生态最优雅的姿势。它不像虚拟机那样笨重,也不需要双系统切换的麻烦,就能让你在熟悉的Windows桌面下,享受到几乎原生的Linux开发体验,尤其对C++这种对编译环境和工具链要求较高的语言来说,优势非常明显。
要让WSL里的C++环境跑起来,其实步骤并不复杂,但有些细节处理得当,能省去不少后续的麻烦。
首先,确保你的Windows系统已经开启了WSL功能。这通常在“启用或关闭Windows功能”里勾选“适用于Linux的Windows子系统”和“虚拟机平台”就行。重启后,去Microsoft Store搜一个你喜欢的Linux发行版,我个人偏爱Ubuntu,因为它社区活跃,资料多。安装完打开,它会提示你设置用户名和密码,这就算踏出了第一步。
接下来,进入你的WSL终端,第一件事永远是更新系统包列表和升级已安装的包:
立即学习“C++免费学习笔记(深入)”;
sudo apt update sudo apt upgrade
这能保证你后续安装的软件都是最新版本,避免一些不必要的依赖问题。
然后,就是安装C++开发的核心工具链了,主要是GCC(GNU Compiler Collection)和GDB(GNU Debugger),以及
make
build-essential
sudo apt install build-essential gdb
安装完成后,你可以简单测试一下:
g++ --version gdb --version
如果能正常显示版本信息,那恭喜你,C++的编译和调试基础已经就绪。
再来,一个好的代码编辑器是必不可少的。我强烈推荐VS Code,因为它对WSL的支持简直是无缝衔接。在Windows上安装VS Code,然后安装“Remote - WSL”扩展。安装后,你可以在WSL终端里直接输入
code .
最后,我们写一个简单的C++程序来验证一下:
在WSL里创建一个文件,比如
hello.cpp
#include <iostream>
int main() {
std::cout << "Hello from WSL C++!" << std::endl;
return 0;
}然后在终端里编译并运行:
g++ hello.cpp -o hello ./hello
如果终端输出了
Hello from WSL C++!
/home/youruser/projects
说实话,刚开始接触WSL,我只是觉得它是个新奇玩意儿,但深入用起来,才发现它在C++开发上的优势是实打实的。
首先,Linux原生工具链的优势。C++在Linux环境下,GCC、Clang这些编译器,Make、CMake这些构建工具,以及GDB这样的调试器,都是行业的黄金标准。它们的生态成熟,社区支持强大,很多开源项目也都是围绕这些工具链开发的。在Windows上,虽然有MSVC,MinGW等选项,但有时兼容性、配置复杂性会让人头疼。WSL直接把这套成熟的Linux环境搬了过来,你不用费心去模拟或适配,直接用最顺手的工具。
其次,Windows的便利性与Linux的强大结合。这是WSL最核心的卖点。你可以在Windows上享受所有你习惯的桌面应用、游戏,同时又能无缝切换到Linux终端,进行C++编译、脚本编写。比如,我可以在Windows的浏览器里查资料,在WSL的终端里编译代码,再用VS Code在Windows图形界面里编辑文件,所有这些都流畅自如,不需要虚拟机那种笨重的资源占用和文件共享的麻烦,更不用提双系统重启的痛苦了。文件系统集成也做得不错,虽然我建议项目放在WSL里以获得最佳性能,但需要访问Windows文件时也很方便。
再者,资源占用和启动速度。相较于传统的虚拟机(如VMware、VirtualBox),WSL的资源占用要轻量得多,启动速度也快得多。它更像是一个集成在Windows内核之上的轻量级容器,而不是一个完整的虚拟硬件平台。这对于笔记本用户或者资源有限的机器来说,体验提升是巨大的。你几乎感觉不到它在后台运行,但需要时它又能立刻响应。
对我来说,它就是那个完美的“中间地带”——既不用完全抛弃Windows,又能充分利用Linux在开发领域的深厚积累。
在WSL里搭建C++环境,虽然整体体验很好,但过程中也确实会遇到一些小“坑”,不注意的话可能会让你抓狂一阵。
第一个坑,也是最常见的:文件I/O性能问题。 如果你的C++项目文件是放在Windows的C盘、D盘,然后通过WSL去访问编译,你会发现编译速度明显变慢。这是因为WSL在访问Windows文件系统时,中间会有一个翻译层,性能损耗较大。 解决方案: 始终将你的C++项目代码存放在WSL的Linux文件系统内,比如
/home/youruser/projects
第二个坑:PATH环境变量配置。 有时你安装了某个工具,但在终端里直接输入命令却提示“command not found”。这可能是因为该工具的安装路径没有被正确添加到WSL的PATH环境变量中。 解决方案: 大多数通过
apt install
~/.bashrc
~/.zshrc
export PATH="/path/to/your/tool:$PATH"
source ~/.bashrc
第三个坑:VS Code Remote - WSL扩展的配置问题。 有时VS Code无法连接到WSL,或者远程开发功能出现异常。这可能是因为WSL环境本身、VS Code或扩展的缓存问题。 解决方案: 确保你的WSL发行版是健康的,可以正常运行。尝试在VS Code中卸载并重新安装“Remote - WSL”扩展。有时,重启VS Code和WSL实例(通过
wsl --shutdown
第四个坑:网络和防火墙问题。 偶尔会遇到WSL内部无法访问外部网络,或者外部无法访问WSL内部服务的状况,这在调试网络应用时尤其明显。 解决方案: 大多数情况下,WSL的网络是自动配置的,并能通过Windows的网络代理。如果遇到问题,首先检查Windows防火墙设置,确保没有阻止WSL的网络连接。对于WSL2,它有自己的虚拟网卡和IP地址,可以通过
ip addr
这些坑其实都算不上什么大问题,只要知道原因和解决办法,都能轻松绕过。关键是理解WSL的工作原理,它毕竟是在Windows上运行的Linux,有些行为会和纯粹的Linux环境有所不同。
搭建好基础的C++编译和调试环境只是第一步,要真正高效地进行现代C++项目开发,我们还需要一些更强大的工具来管理构建和依赖。在WSL下,集成CMake和Vcpkg是提升开发体验的关键。
CMake:现代C++项目的构建利器
CMake是一个跨平台的构建系统生成器,它能根据你的
CMakeLists.txt
在WSL中安装CMake非常简单:
sudo apt install cmake
安装后,你可以在VS Code中打开你的CMake项目。VS Code的“CMake Tools”扩展(同样在Windows侧安装)会与WSL的CMake进行集成。当你打开一个包含
CMakeLists.txt
典型的CMake项目构建流程是这样的:
# 在项目根目录创建一个build目录 mkdir build cd build # 配置项目,生成Makefile cmake .. # 编译项目 make # 运行可执行文件 ./your_executable
VS Code的CMake Tools扩展能把这些命令都封装起来,让你通过界面操作完成。它会自动检测WSL中的CMake,并允许你选择不同的构建套件(比如GCC 9、GCC 11等),非常方便。
Vcpkg:C++包管理的解决方案
C++项目经常需要依赖各种第三方库,比如Boost、Poco、OpenCV等。手动下载、编译、安装这些库,并正确配置它们的头文件和库文件路径,是一个非常繁琐且容易出错的过程。Vcpkg是微软主导的一个C++包管理器,它能帮助你自动化这个过程。
在WSL中集成Vcpkg需要一些步骤,但一旦设置好,后续管理依赖会轻松很多。
克隆Vcpkg仓库:
git clone https://github.com/microsoft/vcpkg.git cd vcpkg
运行Vcpkg的引导脚本:
./bootstrap-vcpkg.sh
这会编译Vcpkg自身。
集成Vcpkg: 为了让CMake能找到Vcpkg安装的库,你需要告诉它Vcpkg的位置。最常见的方式是通过CMake的工具链文件。
# 这一步会生成一个CMake工具链文件 ./vcpkg integrate install
这个命令会在Vcpkg目录下生成一个
scripts/buildsystems/vcpkg.cmake
在CMake项目中指定Vcpkg工具链: 在你项目的
CMakeLists.txt
cmake
-DCMAKE_TOOLCHAIN_FILE
build
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/your/vcpkg/scripts/buildsystems/vcpkg.cmake
在VS Code的CMake Tools中,你可以在设置里指定
cmake.toolchain
现在,你就可以通过Vcpkg安装库了。比如,安装JsonCpp:
./vcpkg install jsoncpp
Vcpkg会自动下载源码、编译并在WSL中安装JsonCpp,同时处理其依赖。然后,在你的
CMakeLists.txt
find_package(jsoncpp CONFIG REQUIRED) target_link_libraries(your_executable PRIVATE jsoncpp)
通过CMake和Vcpkg的组合,你的C++项目在WSL中的构建和依赖管理会变得非常现代化和高效,这对于开发大型或依赖复杂的项目来说,是不可或缺的。这种进阶配置,让WSL下的C++开发体验,几乎与在原生Linux环境下无异,甚至因为Windows桌面环境的加持,在某些方面更胜一筹。
以上就是WSL(Windows Subsystem for Linux)中搭建C++开发环境的教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号