导航:首页 > 文件管理 > vscode怎么编写配置文件

vscode怎么编写配置文件

发布时间:2024-08-26 13:30:47

⑴ 自用VS Code C++环境配置与CMake最简指南与模板

初学C++时,项目构建让我感到困扰

本科时,我最早使用的C++项目构建工具是make,它的基本概念包括目标、命令和依赖,看起来简单易懂。然而,个人编写makefile时,感觉就像是在写脚本。有一次,一个项目停滞了一两周,我连自己写的Makefile都看不懂了,于是我转向了CMake。尽管CMake也很复杂,但无奈它占据了市场,现代的构建工具也只能用它。

(小贴士:在WSL2下,如果docker容器使用C++插件进行智能提示,在WSL2下安装clangd后,可能会导致容器下的插件不起作用)

在Linux终端中安装clangd和lldb,然后在VS Code中安装clangd和CodeLLDB插件。

clangd代码检查需要依赖一个compile_command.json文件,这个文件可以使用cmake生成,如果项目使用make构建,也可以使用bear进行生成。接下来将分别介绍这两种方法。

需要注意的是,尽管clangd名字中有clang,但它同样支持gcc编译的项目,甚至是交叉编译的项目(我曾将clangd用于risc-v,体验良好)。

CMake生成compile_command.json的方法:在指定构建目录的命令中加入以下选项,就可以生成compile_command.json(如果对CMake不熟悉,后文将介绍个人使用的最简CMake项目模板与使用指南)。

使用bear生成compile_command.json的方法:先安装bear,然后在bear命令后加上你原来准备使用的make命令,就可以在当前目录下看到compile_command.json。

为clangd指定compile_command.json所在路径:在VS Code右下角打开Settings,搜索clangd,在Clangd: Arguments指定compile_command.json路径,由cmake创建的会在构建目录下,由bear创建的会在当前目录下。

总之,clangd就开始工作了。

DEBUG配置:在.vscode文件夹下的launch.json文件是VS Code的debug配置文件,只需要在program栏里写下你的可执行目标文件,然后按F5就可以打断点开始调试了。

CMake最简指南与个人用模板:CMake和C++这两个工具都很强大,但作为项目管理工具,大多数人花太多时间在CMake上并不值得。个人经验教训让我觉得CMake入门只需要懂几个Modern CMake的基本命令和规则,然后拿一个最简单的项目模板抄抄改改就可以了,真要看大项目的CMakeLists.txt再去细看,不要像我一样误入弯路。

首先安装cmake,在VS Code上可以安装一个插件作语法高亮,下面的CMake Tools应该是封装了CMake的一些操作,想要也可以安装,但我自己是不用的。

cmake会根据当前目录下的CMakeLists.txt的内容来执行构建命令。可以查看示例模板的目录结构,根目录和子目录proj下各有一个CMakeLists.txt文件,proj目录存放着当前的实际项目。这种项目结构的好处是之后还可以在根目录下添加与proj平级的项目,proj0,proj1,proj2等等,方便拓展。

根目录下的CMakeLists.txt如下,接下来将按行逐条解释。

cmake_minimum_required(VERSION3.16):这个命令指示编译该项目所需的cmake最小版本号,你可以使用cmake --version查看当前的cmake版本号,然后直接照抄就可以了。

set(CMAKE_BUILD_TYPE Debug):这条命令用于设置项目要不要附带Debug信息进行编译,设置成Release可以不附带Debug信息进行编译。

set(CMAKE_C_COMPILER"/usr/bin/clang"):为CMake设置C编译器clang,如果没有安装clang可以不写。

set(CMAKE_CXX_COMPILER"/usr/bin/clang++"):为CMake设置C++编译器clang++,如果没有安装clang可以不写。

set(CMAKE_CXX_STANDARD 11):这个命令很明显了,设置C++的版本,这里设置为11,可以选择你喜欢的。

set(CMAKE_CXX_STANDARD_REQUIRED ON):常与上一条命令搭配的命令,让cmake检查编译器是否符合要求。

set(CMAKE_EXPORT_COMPILE_COMMANDS ON):这个命令是指示cmake导出compile_command.json文件,还记得吗,就是上文说的用于指导clangd进行智能提示的文件,你要是不需要也可以去掉该语句或者设置为OFF。

project(proj LANGUAGES CXX):这是一个必选命令,指定当前项目名,LANGUAGES后指示该项目使用什么编程语言(注意是复数LANGUAGES而不是LANGUAGE),CXX代表C++。

add_subdirectory(proj):指示proj目录下还有一个文件夹需要cmake进行处理(注意,这里的proj与上一条project()命令的proj无关系)。

接着看向proj目录下的CMakeLists.txt,这里很简单,只有两条有效命令,还有两条被注释了的链接命令随后便讲。

file(GLOB_RECURSE srcs CONFIGURE_DEPENDS src/.cc include/.h):file命令是将指定的文件添加到变量中,这里指定了src目录下的以cc结尾的文件,和include目录下以.h结尾的文件。(注意,cmake查找相对路径是当前CMakeLists.txt所在的路径)GLOB_RECURSE则是指定递归地寻找,也就是不仅会搜索src目录下以cc结尾的文件,src下的任何一级子目录下的cc文件都会被加入srcs变量,include/*.h也是同理。设置CONFIGURE_DEPENDS则会在目录下有新文件加入时,更新变量。

add_executable(proj ${srcs}):add_executable这条命令新增了一个名为proj(与之前出现的proj无关)的target,这个target是一个可执行(executable)文件,它的编译依赖于之前设置的srcs变量。

接下来两条命令则是展示了如何链接库文件,不需要可以注释掉,这里使用了Eigen做示范,如果你的电脑还未安装eigen库,可以运行sudo apt install libeigen3-dev安装eigen。

find_package(Eigen3 3.3 REQUIRED NO_MODULE):find_package命令用于加载外部依赖库,Eigen3 3.3制定了依赖库名和版本,REQUIRED指明必须找到该库,否则报错,NO_MODULE则是让CMake使用配置模式进行查找,默认情况下,CMake在/usr/lib/cmake搜索依赖库对应的*Config.cmake文件,用它来配置链接库选项,我在安装Eigen库后,它就将cmake的配置文件也安装到对应目录里了,因此这里可以使用find_package找到Eigen。

target_link_libraries(proj Eigen3::Eigen):这条命令是非常重要的,它指示了将eigen库链接到了之前设置的target proj上,需要注意的

⑵ vscode 配置 c/c++(markdown)

要充分利用VSCode配置C/C++环境,首先确保已安装了VSCode、mingw64和相关的C/C++插件。为了保持代码结构清晰,建议为cpp和c的示例程序分别创建独立文件夹。

配置过程从创建配置文件开始:通过快捷键Ctrl+Shift+P,选择"C/C++ Configuration (UI)",然后点击"C_cpp_properties.json",进行文件设置。

接着,按下左上角的调试键,选择"GDB" launch配置,根据项目需求调整相关参数,编辑"launch.json"文件以确保调试环境正确。

最后,为了自动化构建过程,点击终端面板,选择"Configure Default Build Task",依据当前代码内容,调整"tasks.json"的构建参数。这样,每次修改代码后,都能自动编译并检查。

完成以上步骤后,就可以开始进行C/C++的开发和调试测试了。

阅读全文

与vscode怎么编写配置文件相关的资料

热点内容
u盘两个系统可以放一个文件夹吗 浏览:538
linuxshell变量累加 浏览:386
win10控制面板怎么看 浏览:574
如何编程换装游戏程序 浏览:269
怎么登录沭阳县民政局网站 浏览:451
iphone6降级ios7 浏览:92
怎么隐藏三星应用程序图标不见了 浏览:203
可以兼职的app 浏览:493
iphone圆角图标制作 浏览:659
建设银行app怎么申请 浏览:163
系统备份文件夹在哪 浏览:998
qq分组exo韩文 浏览:849
华硕装装win7系统教程视频 浏览:407
什么是数据直连 浏览:210
笔记本连接无线网络慢 浏览:486
压缩文件怎么控制在4m以内 浏览:1
indesign最新版本2016 浏览:300
为什么压缩文件窗口变小 浏览:904
居民医保工行手机app怎么缴费 浏览:602
图论与网络流理论答案 浏览:913

友情链接