vscode中配置cmake及debug使用

1.在vscode里要安装好相应的插件

在这里插入图片描述

2.在linux安装cmake

下载文件并解压

wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz
tar zxvf cmake-3.9.1-Linux-x86_64.tar.gz

移动到opt目录,并创建软连接

mv cmake-3.9.1-Linux-x86_64 /opt/cmake-3.9.1
ln -sf /opt/cmake-3.9.1/bin/*  /usr/bin/ 

检查下cmake版本

>>>cmake --version
cmake version 3.9.1

3.CMakeList.txt

在这里插入图片描述
如果在目录下存在cmakelist.txt则会自动激活vscode最下方的cmake tools插件
在这里插入图片描述

4.cmake生成makefile

在这里插入图片描述
点击cmake按钮(如果想调试就选择Debug)
在这里插入图片描述
可以发现自动会生成一个build目录,里面有makefile文件

5.build

在这里插入图片描述
点击build,会自动进行build

6.选择需要执行的文件

在这里插入图片描述
点击该项,选择或者输入执行的文件

7.执行Debug

点击下方的小虫子Debug,即可运行
在这里插入图片描述

8.注意的事情

以下是一个CMakeLists.txt的例子
记得如果是 .c文件,用debug必须要用CMAKE_C_FLAGS_DEBUG设置
.cpp文件,debug必须要用CMAKE_CXX_FLAGS_DEBUG设置
否则,虽然编译能通过,也能运行,但是遇到断点不会停。

cmake_minimum_required(VERSION 3.1)
project(deadlock)
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_BUILD_TYPE Debug)
set(CMAKE_C_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g")
add_executable(deadlock_success deadlock_success.c)
add_executable(deadlock_class deadlock_class.c)
add_executable(t1 test.cpp)


target_link_libraries(deadlock_success pthread dl)
target_link_libraries(deadlock_in_class pthread dl)
### 使用 CMake 进行调试配置 对于希望利用 CMake 来设置项目的调试环境而言,理解如何正确地调整编译选项以及集成调试器至关重要。当使用 CMake 配置项目时,可以通过指定 `CMAKE_BUILD_TYPE` 参数来控制构建模式,默认情况下支持 Debug 和 Release 两种主要模式[^1]。 为了启用调试功能,在调用 cmake 命令时应传递 `-DCMAKE_BUILD_TYPE=Debug` 参数。这不仅会影响优化级别(通常禁用),还会确保编译过程中加入必要的调试信息,使得后续可以顺利连接 GDB 或其他调试工具进行单步执行、断点设置等操作。 此外,如果目标平台不同于主机架构,则可能涉及到交叉编译的情况。此时除了常规的调试标志外,还需要指明合适的交叉编译工具链路径及其对应的编译器和链接器名称。例如: ```bash ToolChain=/path/to/toolchain export CC=${ToolChain}/bin/target-gcc export CXX=${ToolChain}/bin/target-g++ cmake .. -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_TOOLCHAIN_FILE=path_to_toolchain_file.cmake ``` 上述脚本展示了针对特定嵌入式系统的交叉编译场景下,如何通过环境变量的方式设定交叉编译所需的 GCC 工具链,并告知 CMake 正确读取相应的工具链文件来进行进一步处理[^2]。 最后值得注意的是,在某些开发环境中如 Visual Studio Code 中工作时,IDE 自身也会尝试自动检测并应用默认的编译器路径;然而用户仍然能够手动覆盖这些设置以满足特殊需求或解决潜在冲突问题。例如在 Windows 上优先考虑 MSVC 编译器的情况下,也可以强制选用 MinGW-w64 提供的 g++ 编译器作为替代方案[^3]。 综上所述,无论是本地还是远程的目标平台上开展基于 CMake 的软件工程实践,合理运用以上提到的技术要点都将有助于提高工作效率并简化复杂度较高的多平台移植任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菊头蝙蝠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值