【vscode】c++程序的自动编译及调试(环境centos)

1.新增配置文件

VS Code的配置文件一般是指特定目录下的JSON文件。所谓JSON是一种文本格式,用于轻量化地存储一组{键: 值}信息,诸如编译器的路径、调试器的路径和有关选项等。
我们这里所做的调试配置放在当前工作文件夹下的.vscode子目录中,具有最高优先级,出错了想从头来直接删除里面的配置文件即可。
这里新增的配置文件有:

(1)c_cpp_properties.json

这里是cpp的配置选项,主要用于配置头文件路径:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/c++/8",
                "/usr/local/opencv/include/opencv4/opencv2/",
                "/usr/local/opencv/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

(2)files.associations

将某种特殊文件类型关联到vscode已支持的文件类型

{
    "files.associations": {
        "*.cu": "cuda-cpp",
        "*.cpp": "cpp",
        "deque": "cpp",
        "string": "cpp",
        "vector": "cpp",
        "*.tcc": "cpp",
        "__hash_table": "cpp",
        "__split_buffer": "cpp",
        "__tree": "cpp",
        "array": "cpp",
        "bitset": "cpp",
        "initializer_list": "cpp",
        "iterator": "cpp",
        "map": "cpp",
        "queue": "cpp",
        "random": "cpp",
        "set": "cpp",
        "stack": "cpp",
        "string_view": "cpp",
        "unordered_map": "cpp",
        "utility": "cpp",
        "__atomic": "cpp",
        "__functional_base": "cpp",
        "__functional_base_03": "cpp",
        "__tuple": "cpp",
        "algorithm": "cpp",
        "chrono": "cpp",
        "type_traits": "cpp",
        "filesystem": "cpp",
        "functional": "cpp",
        "limits": "cpp",
        "memory": "cpp",
        "ratio": "cpp",
        "tuple": "cpp",
        "istream": "cpp",
        "ostream": "cpp"
    }
}

(3)tasks.json

编译用,调试程序将在编译好的debug程序上进行调试
这里其实是执行了make -j6

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "make -j6"
        },
       
    ]
}

(4)CMakeLists.txt

编写完后使用make命令产生makefile,供(3)进行make编译.
这里特别注意:#添加-g 参数以支持带有gdb调试信息,否则无法下断点

#设置CMAKE最`在这里插入代码片`低版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
MESSAGE(STATUS "start!")
#设置项目名称
SET(PROJECT_NAME OpenCV_test)
#这里添加刚刚安装的opencv的目录,需要包含OpenCVConfig.cmake
SET(OpenCV_DIR /usr/local/opencv/lib64/cmake/opencv4)
#建立项目
PROJECT(${PROJECT_NAME})
#寻找OpenCV库
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#打印调试信息
MESSAGE(STATUS "Project: ${PROJECT_NAME}")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "    version: ${OpenCV_VERSION}")
MESSAGE(STATUS "    libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

#添加-g 参数以支持带有gdb调试信息
set(CMAKE_CXX_FLAGS "-g")
set(CMAKE_C_FLAGS "-g")

#获取代码,在项目中,将所有代码都放在src文件夹中
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
MESSAGE(STATUS "Src file: ${DIR_SRCS}")
#编译可执行程序
ADD_EXECUTABLE(${PROJECT_NAME} ${DIR_SRCS})
#添加链接库
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})

(5)launch.json
调试配置文件,用于指定调试用的环境等信息

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "program-debug",
            "type": "cppdbg",
            "request": "launch",
            //待调试的程序
            "program": "${workspaceFolder}/OpenCV_test",
            "args": [],
            "stopAtEntry": false,
            //工作目录,用于寻找文件及图片等
            "cwd": "${workspaceFolder}",
            //配置的环境变量,相当于使用一次export命令,这里没有实际使用
            "environment": [
                {"name": "workdir", "value": "workspace"}
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //每次进行调试前先进行编译操作:
            "preLaunchTask": "build"
        }
    ]
}

对于"miDebuggerPath",需要安装调试工具gdb,并填写调试路径:

安装调试工具:

 yum install gdb

安装完后可以使用 which gdb命令给出gdb的安装路径。

查看gdb安装的所在路径:

rpm -ql gdb

上述工作准备完后,有:
在这里插入图片描述

2.断点调试

在cpp文件内加断点:
在这里插入图片描述
点选调试按钮,选择在这里插入图片描述
在这里插入图片描述
选择上图蓝色选项,执行编译并调试。
在这里插入图片描述
断点进入成功。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VSCode上进行远程调试C代码的过程相对简单,以下是在CentOS系统上进行远程调试的步骤: 1. 首先,在CentOS上安装GCC编译器和GDB调试器。可以使用以下命令进行安装: ``` sudo yum install gcc sudo yum install gdb ``` 2. 在VSCode中安装C/C++插件,并重新启动VSCode。 3. 在CentOS上创建或打开一个C的项目文件夹。 4. 打开VSCode,在菜单中选择“文件”>“打开文件夹”,然后选择在步骤3中创建的C项目文件夹。 5. 在VSCode的左侧边栏中,展开"调试"部分,然后点击“添加配置”。 6. 选择"C++ (GDB/LLDB)",这将自动创建一个`.vscode`文件夹,并生成一个名为`launch.json`的配置文件。 7. 打开`launch.json`文件,并将其内容更改为如下: ``` { "version": "0.2.0", "configurations": [ { "name": "gcc.exe - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "preLaunchTask": "gcc.exe 生成活动文件" } ] } ``` 8. 保存并关闭`launch.json`文件。 9. 现在您可以在VSCode中设置断点,然后点击“调试”部分的绿色播放按钮以开始调试。 10. 在调试期间,您可以使用VSCode调试工具栏来执行步骤进入、步骤结束和继续等操作。您还可以在变量和观察视图中查看变量的值。 希望以上步骤能帮助您远程调试C代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值