概述

本文介绍如何在windows中使用wsl系统实现Linux开发,并且安装常用的C++工具例如cmake, g++, gdb, valgrind等。

安装步骤

<1> 安装wsl子系统:

1
2
3
4
5
6
7
8
// win+X 打开powershell(管理员)
wsl --install

// 安装完成后,重启电脑,打开powershell再次运行wsl --install
// 输入Linux用户名和密码(自己设定)

// apt更新package(重要,否则后面的包安装可能会失败)
sudo apt update && sudo apt upgrade

安装完成后,在windows开始菜单中可以看到WSL和Ubuntu系统的程序:(默认Ubuntu,也可以安装其他Linux系统)。可以选择Ubuntu,WSL或者powershell中的任意一个使用Linux系统:

<2> 安装C++相关编译、测试工具:

1
2
3
4
5
6
7
8
9
10
11
// 安装 cmake
sudo apt-get install cmake

// 安装 C++编译环境如g++, gdb等,安装完之后输入g++ -v, gdb -v 等检查版本信息
sudo apt-get install build-essential

// 安装 clang
sudo apt-get install clang

// 安装 valgrind,安装完成以后输入 valgrind --version 确认
sudo apt-get install valgrind

<3> 在windows的VS code中配置WSL插件:

1
2
3
4
5
6
// 在WSL的某个文件夹下,打开vs code (新窗口)
code .

// 如果上面提示Error: failed to download the VS Code server. 'wget' not installed. Please install wget. 则安装wget:
sudo apt-get install wget
code .

在vs code中,可以看到建立了Linux连接的文件目录:(左下角 WSL: Ubuntu 字样说明连接成功)

至此,我们可以使用以下四种方式打开linux终端: (username@hostname)

  • windows开始-Ubuntu
  • windows开始-WSL
  • windows powershell
  • vs code - WSL

<4> 在vs code-WSL中配置C/C++和C/C++ Extension Pack插件:

<5> 使用示例代码测试c++编译环境:

直接在vs code - WSL中新建文件夹和cpp源文件(或者在powershell中用vim/vi),编写测试程序 test00.cpp

1
2
3
4
5
6
7
8
// test00.cpp
#include <iostream>
using namespace std;

int main(){
cout << "Hello Jack" << endl;
return 0;
}

终端中编译和运行:

1
2
g++ test00.cpp -o test.exe
./test.exe

输出: Hello Jack

valgrind 测试:

1
2
3
4
5
6
7
8
// 编译加-g参数(添加行号等debug信息)
g++ -g test00.cpp -o test.exe

// valgrind 检查:(参数--tool=memcheck为默认,可省略)
valgrind ./test.exe

// 将valgrind的信息输出到vg.log文件:
valgrind --log-file=vg.log ./test.exe

下面例子说明g++编译时加与不加-g参数的区别:

附录

  • 如果在安装某个包时报错: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?。原因是包环境需要升级。解决办法:sudo apt update && sudo apt upgrade,升级apt之后再次安装即可。

参考链接