ubuntu vscode 基本设置 和 调试设置

在ubuntu下为了调试C++代码能够和在win上的VS一样方便,就需要一个IDE,而vscode就是一个不错的选择,每次在新的机器上安装完,需要进行一些基本设置,才能够用的顺手。

1、主题

记得一定不要选高对比度外观,否则#ifdef这个非活动模块也不能够变暗;

2、扩展

C/C++、C/C++ Extension Pack、C/C++ Themes、CMake、CMake Tools、Chinese(简体中文);

3、设置

Font Size: 16

Font Family: monospace

4、调试

踩坑后发现,vscode中即使你写好了CMakelist且CMake编译能成功,也是不能调试的,这是因为调试工具gbd没有解析CMake里面的内容,正确的方式是去配置task.json和launch.json,这两个文件起初是没有的,当你点击vscode的“添加调试配置”按钮(通常是窗口右上角一个齿轮形状的按钮,弹出几个选项,选择见下图),选择完毕后,.vscode(隐藏目录)下会生成launch.json和task.json模板文件。

这里再提一点,就是其他博客还配置了c_cpp_properties.json文件,我实测下来可以不用配置,按照我的步骤来即可。

现在以一个简单的例子来说明,现在我们本身有一个main.cpp和CMakelist.txt文件,内容如下,测试功能是1、传入参数,2、定义宏,3、调用opencv库的部分功能,4、使用C++17的filesystem。

CMakelist.txt文件:

#可能与上面略有差异,是因为我几年过后再回头过了一遍,用的代码略有不同,但不影响整体
cmake_minimum_required(VERSION 3.5)

add_compile_options(-std=c++17 -O3)#-Og
set(CMAKE_BUILD_TYPE Release) 

project(vscode-gdb-opencv)

find_package(OpenCV REQUIRED)
message(STATUS "opencv include path is: " ${OpenCV_INCLUDE_DIRS})
message(STATUS "opencv lib path is: " ${OpenCV_LIBS})
include_directories(${OpenCV_INCLUDE_DIRS})

FILE(GLOB CPP_FILE1 ${PROJECT_SOURCE_DIR}/src/*.cpp)
add_executable(test ${CPP_FILE1})
target_link_libraries(test ${OpenCV_LIBS} -lstdc++fs)

 main.cpp文件

//可能与上面略有差异,是因为我几年过后再回头过了一遍,用的代码略有不同,但不影响整体
#include <string>
#include <opencv2/opencv.hpp>

int main(int argc, char *argv[])
{
    using namespace std;
    using namespace cv;

    string path = R"(/home/work/temp/bin/2024_05_27_11_04_35.png)";
    Mat mat = imread(path);
    Mat mat1 = Mat::zeros(10,10,CV_8UC3);

    return 0;
}

 现在简单说一下launch.json文件,这里主要用来传参,打开该文件,然后修改里面的args就对应C++的main函数的char* argv[],如下:

 最后说较为复杂的task.json,前面我们说gbd并不会解析CMakelist.txt里面的内容,所以我们需要在task.json去链接头文件目录、库文件目录、库文件名、宏定义、C++17等编译时的各种配置。

这里需要注意的是!!!CMakelist.txt和task.json是完全不关联的,如果你在CMakelist.txt定义了宏,但是task.json没有定义,那么调试时是没有宏的,如果你在CMakelist.txt加了C++17的定义并且代码有相关内容,但是task.json没有添加C++17的定义,那么就会报错。

                //可能与上图路径略有差异?是需要根据自己的实际路径去配置的,要灵活,懂?
                "-I", "/usr/local/include/opencv4",
                "-I", "/usr/local/include/opencv4/opencv",
                "-I", "/usr/local/include/opencv4/opencv2",

                "-L", "/usr/local/lib",

                "-l", "opencv_core",
                "-l", "opencv_highgui",
                "-l", "opencv_imgcodecs",

                "'-std=c++17'",
                "-l", "stdc++fs",

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值