Vscode+LLVM14+Cmakelists多文件编译 | 青训营笔记

238 阅读2分钟

1前言:这是我参与「第四届青训营 」笔记创作活动的第二天

使用Vscode配置C++的编译环境,网上虽然有许多的教程,但是鱼龙混杂,虽然配置过程很简单,但是真正使用起来的时候这次成功,但是下次不成功,总是有很多莫名的BUG,其实从头自己一步一步的配置,反而有助于理解整个程序的编译过程,下面我就接着诸多大佬的帖子,结合自己的实际电脑情况,给大家展现一下自己的配置过程


总结比较好的例子(无情的好资料):

1. 可能是全网最好的vscodeC++环境配置

2. Cmakelist的基本知识

3. cmake+vscode编译多个子目录c++文件的源代

上面的三个帖子就是我配置时参考的文章,文章都是非常的详尽,我也会将自己在配置过程中遇到的一些问题进行解释

  1. 首先大家在初始配置的时候建议看第一个帖子,按照这位老哥的教程走下来,我体验下来,Mac系统只有一个小地方可能有点小问题

1.png

  1. 我的文件配置

2.png

3.png 2. 上面弄完之后,你的Vscode就可以正常的编译了,但是紧接着需要修改cmakelists,进行多文件夹下的编译工作

```
 cmake_minimum_required(VERSION 3.22)
 project(helloworld)
 ​
 set ( PRJ_SRC_LIST )
 set ( PRJ_HEADER_LIST )
 set ( PRJ_LIBRARIES )
 set ( PRJ_INCLUDE_DIRS )
 ​
 ​
 #设定好文件的名字
 set ( prj_inc_dir ${CMAKE_CURRENT_SOURCE_DIR}/include )
 set ( prj_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/src )
 ​
 ​
 # 自定义搜索的路径,并且添加到对应的文件列表中
 file ( GLOB root_header_files "${prj_inc_dir}/*.h" )
 file ( GLOB root_src_files "${prj_src_dir}/*.cpp" )
 打印一下非重要信息
 message ( STATUS "  root_header_files =  ${root_header_files}")
 message ( STATUS "  root_src_files =  ${root_src_files}")
 ​
 #将后面的文件列表或者文件路径赋给前面的变量
 list ( APPEND PRJ_HEADER_LIST ${root_header_files} )
 list ( APPEND PRJ_SRC_LIST ${root_src_files} )
 list ( APPEND PRJ_INCLUDE_DIRS ${prj_inc_dir} )
 ​
 #生成可执行文件
 add_executable ( ${PROJECT_NAME} ${PRJ_SRC_LIST} ${PRJ_HEADER_LIST} )
 ​
 ​
 #指定目标包含的头文件名路径
 target_include_directories ( ${PROJECT_NAME}
     PRIVATE
         ${PRJ_INCLUDE_DIRS}
 )
 ​
 #指定目标的编译选项
 target_compile_features ( ${PROJECT_NAME} 
     PUBLIC 
         cxx_std_14
 )
 ​
 #指定目标链接的库
 target_link_libraries ( ${PROJECT_NAME} 
     PRIVATE 
         ${PRJ_LIBRARIES}
 )
```

3. 运行过程演示 4.png 4. 调试过程

原文写的代码直接可以进行copy,需要修改的就是exe文件的路径与名字

5.png

launch和tasks都需要修改!!!!

  1. 调试,打好断点,调试F5即可完美使用!!!! 6.png
  2. 大家如果嫌弃麻烦,我会将文件上传到我的仓库中,希望对大家有所所帮助!!! 仓库地址在评论区!!!