之前的 linux下vscode配置c++,使其和Visual Studio2019一样调试文章和本篇类似,配置vscode使其和vs2019进行调试和编译,但是之前的文章不是很实用,是通过命令行的形式进行配置的,这样的方法针对小工程还好,如果是复杂很大的工程就显得很复杂了,那么有没有更好的方法呢?答案是有,这里大家可以参考官网的文章,官网的例子很简单,我这里是比较复杂的项目,同时也会讲解的配置过程中遇到的问题。

1.ubuntu下的cmake版本问题

之所以说这个问题,等后面我们都配置好了,会发现有时候无法调试多层文件夹的源文件,报的错误是低版本不支持错误解释在这里,需要cmake版本大于3.7.2以后才会支持,因此这里需要大家确定自己的版本。

ubuntu@ubuntu-PowerEdge-R730:~$ cmake --version
cmake version 3.21.4

如果版本没有大于3.7的需要卸载cmake然后安装更高的版本,点击这里下载cmake,下载完成后,放到ubuntu下安装:

下载安装包好,直接解压即可,然后创建软连接即可

重新打开一个终端查看cmake版本:cmake --version

下面就可以配置vscode了

2.VScode配置

2.1  vscode的cmake配置

这里默认了已经安装了vscode的c++相关插件和cmake工具等插件,先配置cmake配置,打开文件-->首选项-->设置-->用户-->扩展-->CMake Tools-->Cmake:Cmake Path把在linux重新安装的cmake的位置添加进来如:

同理远程也要修改:

2.2 C++环境配置

完成上面的基本配置后,就可以配置c++环境了,可以直接按照官方的教程来:

创建一个 CMake 项目#

如果您的现有 CMake 项目CMakeLists.txt在根目录中已有文件,则可以跳至选择套件以配置现有项目。

否则,为新项目创建一个文件夹。在终端窗口中,创建一个名为 的空文件夹cmakeQuickStart,导航到其中,然后通过输入以下命令在该文件夹中打开 VS Code:

mkdir cmakeQuickStart
cd cmakeQuickStart
code .

code .命令会在当前工作文件夹中打开 VS Code,该文件夹将成为您的“工作区”。

创建一个 CMake hello world 项目#

CMake 工具扩展可以为您创建基本 CMake 项目的文件。打开命令面板 ( Ctrl+Shift+P ) 并运行CMake:快速启动命令:

输入项目名称。这将被写入CMakeLists.txt和一些初始源文件。

接下来,选择Executable作为项目类型以创建main.cpp包含基本main()功能的基本源文件 ( ) 。

注意:如果您想创建一个基本的源文件和头文件,您应该选择Library。但是对于本教程,Executable就可以了。如果系统提示您为文件夹配置 IntelliSense,请选择允许

这将创建一个 hello world CMake 项目main.cppCMakeLists.txt其中包含, (告诉 CMake 工具如何构建您的项目)和一个以build您的构建文件命名的文件夹:

选择套件#

在您可以使用 CMake 工具扩展来构建项目之前,您需要对其进行配置以了解系统上的编译器。通过扫描“套件”来做到这一点。工具包代表一个工具链,它是用于构建项目的编译器、链接器和其他工具。扫描试剂盒:

  1. 打开命令面板 ( Ctrl+Shift+P ) 并运行CMake: Select a Kit。该扩展程序将自动扫描您计算机上的工具包并创建在您的系统上找到的编译器列表。

  2. 选择要使用的编译器。例如,根据您安装的编译器,您可能会看到如下内容:

配置 Hello World #

您必须做两件事来配置您的 CMake 项目:选择一个工具包(您刚刚完成)和选择一个变体。

您之前选择的套件显示在状态栏中。例如:

要更改套件,您可以单击状态栏中的套件,或运行CMake:再次从命令面板中选择套件命令。如果您没有看到您正在寻找的编译器,您可以cmake-tools-kits.json在您的项目中编辑该文件。要编辑文件,请打开命令面板 ( Ctrl+Shift+P ) 并运行CMake:Edit User-Local CMake Kits命令。

选择一个变体#

变体包含有关如何构建项目的说明。默认情况下,CMake的工具扩展提供四种变体,每一个对应于默认生成类型:DebugReleaseMinRelSize,和RelWithDebInfo。这些选项执行以下操作:

Debug:禁用优化并包含调试信息。 Release:包括优化但没有调试信息。 MinRelSize:优化尺寸。没有调试信息。 RelWithDebInfo:优化速度并包含调试信息。

要选择变体,请打开命令面板 ( Ctrl+Shift+P ) 运行CMake: Select Variant命令。

选择调试以在您的构建中包含调试信息。

选定的变体将出现在活动套件旁边的状态栏中。

CMake:配置#

现在您已经选择了一个套件和一个变体,打开命令面板 ( Ctrl+Shift+P ) 并运行CMake:Configure命令来配置您的项目。这将使用您选择的工具包和变体在项目的构建文件夹中生成构建文件。

构建helloword#

配置项目后,您就可以开始构建了。打开命令面板 ( Ctrl+Shift+P ) 并运行CMake: Build命令,或从状态栏中选择Build按钮。

您可以通过从命令面板中选择CMake: Set Build Target来选择要构建的目标。默认情况下,CMake 工具会构建所有目标。选定的目标将出现在“构建”按钮旁边的状态栏中。

调试helloword#

要运行和调试您的项目,请打开main.cppstd::cout在行上放置一个断点。然后打开命令面板(Ctrl+Shift+P)并运行CMake: Debug。调试器会停在这一std::cout行:

继续并按F5继续。

2.3 多文件夹和多工程进行环境配置

下面看看我的文件结构

其中build是自动创建的,CMakeLists.txt也是自动创建的,src里存在大量的源文件即.cpp文件,我们需要做的就是修改根目录下的CMakeLists.txt和创建src目录下的CMakeLists.txt,其实这些操作和前面cmake系列一样的操作,这里简要说明不懂的请看我的cmake使用教程系列,先看看根目录下的CMakeLists.txt

cmake_minimum_required(VERSION 3.7.2)
project(main VERSION 0.1.0)include(CTest)
enable_testing()# 查找opencv的path
find_package(OpenCV REQUIRED)
# 打印opencv的相关信息
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")# 添加子目录,该目录为库目录,会调用子目录的cmake文件,进行构建库
add_subdirectory(src)add_executable(main main.cpp)# 添加链接库
target_link_libraries(main TrafficLightRecognition ${OpenCV_LIBS})set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

其中有注释的是我添加的,没有注释的是自动添加的,添加的命令主要是为了构建src的库文件,然后链接即可,src的就和前面的教程一样了,这里不再赘述,至此vscode配置结束:

# 获取本目录下的所有文件的列表
aux_source_directory(. DIR_LIB_SRCS)
# 设置c++11进行编译,如果使用了c++11的预研特性,必须写这个命令,否则报错
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")
# 通过如下命令获取opencv的相关信息,这里不采用这样的方式,采用添加目录的方式,这样增加方法的多样性
find_package(OpenCV REQUIRED)
# message(STATUS "OpenCV library status:")
# message(STATUS "    version: ${OpenCV_VERSION}")
# message(STATUS "    libraries: ${OpenCV_LIBS}")
# message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
# include_directories(${OpenCV_INCLUDE_DIRS})
link_libraries(${OpenCV_LIBS})# 安装opencv时我们是可以知道opencv安装的位置的如:/usr/local/include
# 我这里的的源文件也依赖了matlab的运行库,因此也把头文件加载进来了
include_directories(/usr/local/MATLAB/MATLAB_Runtime/v96/extern/include /usr/local/include)
# 把对应的库文件目录也添加进来,这里添加库目录的目的是生成的静态库需要
link_directories(/usr/local/lib /usr/local/MATLAB/MATLAB_Runtime/v96/extern/bin/glnxa64  /usr/local/MATLAB/MATLAB_Runtime/v96/extern/lib/glnxa64)# 指定编译库输出的位置,这个可以设置也可以不设置
set(LIBRARY_OUTPUT_PATH lib)
# 生成动态库
add_library(TrafficLightRecognition SHARED ${DIR_LIB_SRCS})# 生成静态库
add_library(TrafficLightRecognition_static STATIC  ${DIR_LIB_SRCS}) # 想要生成动态库和静态库相同名称的的库文件,则需要一个指令set_target_properties
# 这里只是通过重新命名的方法使其名字相同的,构建时还需不能相同
set_target_properties(TrafficLightRecognition_static PROPERTIES OUTPUT_NAME "TrafficLightRecognition")# 这里为了完整也把安装的命令写了上去,这没使用到他
# 安装共享库和头文件
# 将动态库和静态库安装到<prefix>/lib
install(TARGETS TrafficLightRecognition TrafficLightRecognition_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
# 安装头文件
install(FILES traffic_light_recognition.h DESTINATION include)

下面看看调试的过程:

ctrl+shift+p:输入cmake:debug

ubuntu vscode通过cmake配置c++和VS2019一样 进行调试相关推荐

  1. Ubuntu VSCode OpenCV 环境配置

    settings.json 中添加 "code-runner.executorMap": {"cpp": "cd $dir && g+ ...

  2. 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)

    基于VSCode和CMake实现C/C++开发 | Linux篇 文章目录 目录结构 文件编辑 vim(编辑器之神,linux里可以畅通无阻,必学,但不是现在!) 安装GCC和GDB g++编译过程 ...

  3. Linux下VSCode的安装和使用(VScode C/C++配置 CMake的使用)(GCC、GDB)(各类插件 Snippets、Code Runner、Include Autocomplete)

    文章目录 Linux下安装vscode VScode安装插件 编码与调试配置(转到bilibili教程 - 共24课) Linux下安装vscode vscode貌似也能通过apt-get 方法安装, ...

  4. 在Win10系统上使用VScode + Cmake配置C/C++开发环境,实现一键编译运行

    1.前言 前几天在公司的Ubuntu20.04电脑上配置了VSCode + Cmake的C/C++开发环境,可以用来跑跑C/C++的代码,然后,现在住的地方用的Windows,开发环境用的是 Visu ...

  5. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  6. 在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码比较,opencv3进行g++例子程序编译、动态库的制作

    1.首先安装的是cmake软件,使用指令: apt-get install cmake 接着查看版本,测试是否安装成功: root@emouse:/home# cmake --version cmak ...

  7. Ubuntu下安装cmake,配置ITK 和 SimpleITK, VTK(已测试可执行)

    curses库 在安装cmake之前应该先安装一下curses库.如果系统中有curses库的话,cmake将生成一个可执行文件ccmake,它是一个基于文本程序的终端,有点类似windows GUI ...

  8. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  9. vs code linux opencv,ubuntu+vscode 测试运行opencv

    ubuntu+vscode 测试运行opencv ubuntu+vscode 测试运行opencv 之前再ubuntu配置好了opencv,今天测试运行一下. 1.创建一个文件夹opencv+test ...

最新文章

  1. 独家!扒出腾讯新高管余总的真面目!
  2. facebook 分享,遇到的错误
  3. 第一章 python学习,个人对计算机硬件的一些理解
  4. IDC数据中心机房该如何节能
  5. 002 PECompact 1.84
  6. PHP学习01:引入表格解析并发送给网页
  7. python命令行进入帮助模式_python命令行模式直接查看帮助
  8. WordPress 不同分类目录调用不同模板的方法
  9. 常见浏览器兼容性问题及解决方案
  10. 辽宁工业大学有没有计算机专业,辽宁工业大学(专业学位)计算机技术考研难吗...
  11. isinstance / issubclass / type, 方法和函数, 反射
  12. rdd和DF数据存入MYSQL
  13. windows 2012安装证书服务器,windows 2012 RADIUS服务器认证问题
  14. 数学建模模板(让你也能写论文的模板)
  15. ftp服务器FileZilla Server详细配置教程
  16. ICLR 2019 Oral 论文 BigGAN 解读及源代码拆解
  17. 使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
  18. 两个月快速通过软考高项(信息系统项目管理师)备考技巧
  19. winpe安装windows2003,硬盘winpe安装windows2003,无光驱硬盘安装windows2003
  20. 树莓派4+神经计算棒二代开发-环境搭建

热门文章

  1. git删除中间某个commit
  2. 集成学习-幸福感预测案例分析
  3. 可视化报表Superser
  4. php连接mysql数据没反应_php无法连接mysql数据库的正确解决方法
  5. java 多项式拟合最多的项数_MATLAB绘制带置信区间的拟合曲线
  6. 域服务器账号权限,域中文件服务器权限设置
  7. python连接池框架_python3.0 django mysql连接池说明
  8. matlab上机操作作业指导书,LED自动固晶基本操作1
  9. php 慢日志,php-fpm慢执行日志
  10. mysql解压rar至指定文件夹_PHP解压ZIP文件到指定文件夹的方法