文章目录
- 缘起
- 主要步骤
- 参考
缘起
今天在阅读《C++20设计模式-可复用的面向对象设计方法(原书第2版)》的时候,遇到代码想要运行一下,于是决定使用wsl下的vscode配置cpp的环境。
主要步骤
1.安装gcc和g++编译器
打开命令行输入wsl,然后安装即可,如下:
sudo apt-get install gcc g++
我这里已经安装过,如下图所示。
使用whereis查看g++的位置,这里是/usr/bin/g++,这是待会后面配置需要用到的编译器的地址。
2.新建测试文件test.cpp
然后在文件目录,这里是test目录新建test.cpp文件,内容如下:如下代码来源于C++11智能指针(一):shared_ptr介绍与实例,用于学习智能指针的用法。读者直接复制使用即可。
// test.cpp
#include <iostream>
#include <memory> //使用shared_ptr需要include它int main() {//通过make_shared创建shared_ptrstd::shared_ptr<int> p1 = std::make_shared<int>();*p1 = 78;std::cout << "p1 = " << *p1 << std::endl;//查看引用计数std::cout << "p1 Reference count = " << p1.use_count() << std::endl;//第二个shared_ptr也将在内部指向相同的指针//这将会使引用计数变为2std::shared_ptr<int> p2(p1);//查看引用计数std::cout << "p2 Reference count = " << p2.use_count() << std::endl;std::cout << "p1 Reference count = " << p1.use_count() << std::endl;//比较智能指针if (p1 == p2) {std::cout << "p1 and p2 are pointing to same pointer\n";}std::cout << "Reset p1" << std::endl;//重置shared_ptr,在这种情况下,其内部不会指向内部的任何指针//因此其引用计数将会变为0p1.reset();std::cout << "p1 Reference Count = " << p1.use_count() << std::endl;//重置shared_ptr,在这种情况下,其内部将会指向一个新的指针//因此其引用计数将会变为1p1.reset(new int(11));std::cout << "p1 Reference Count = " << p1.use_count() << std::endl;//分配nullptr将取消关联指针并使其指向空值p1 = nullptr; std::cout << "p1 Reference Count = " << p1.use_count() << std::endl;if (!p1) {std::cout << "p1 is NULL" << std::endl;}return 0;
}
切换到该目录,然后使用code .
命令运行,意思是使用vscode打开当前目录。
3.编辑配置文件
使用快捷键Ctrl + Shift + P,输入c/c++, 选择编辑配置(UI),意思是以图形化界面的形式编辑json配置文件。
对于打开的C/C++配置文件,修改如下两处即可,其他可以保持默认
另外可以指定g++的版本,这里选择g++17
4.配置默认生成任务
Ctrl + Shift + P 打开命令窗口,输入task,选择任务:配置默认生成任务,点进去会看到使用模板创建tasks.json文件,选择该项,然后会出现tasks.json文件
替换tasks.json中的内容如下:
{"version": "2.0.0","windows": {"options": {"shell": {"executable": "bash.exe","args": ["-c"]}}},"tasks": [{"label": "g++ build active file","type": "shell","command": "/usr/bin/g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"group": "build"},{"type": "cppbuild","label": "C/C++: g++ 生成活动文件","command": "/usr/bin/g++","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}]
}
替换举例如下所示:
5.运行cpp文件
有两种方式
第一种:使用命令行输入g++ 文件名
,会编译成名字为a.out的可执行文件,然后输入./a.out
即可运行,输入的结果如下图所示:
第二种:使用右上角的三角符号,运行c++文件
运行结果如下图所示
本文主要参考以下博文,对原作者表示感谢。
参考
[1] VSCode配置WSL的C++环境(在VSCode通过WSL调试C++)