编译调试之CMake编译

Windows VS Code使用Cmake工具编译调试C代码 6,如遇到 nmake 未指定的错误,说明你的系统未安装nmake工具,cmake安装完毕,默认使用nmake生成器,需要修改一下cmake的生成器,采用以上安装的w64devkit中的make。4,在vscode 按快捷键 ctrl+shift+p,输入CMake,应该会看到一下指令。建议使用w64devkit工具链,轻量级gnu c++工具链,可以替代Mingw使用。5,在cmake工具栏点相应的按钮进行生成,编译,和调试。此工具链未包含cmake工具,所以还需要安装cmake。 阅读详情

1 基本信息

Cmake最低版本号要求

cmake_minimum_reqired(VERSION 2.8)

项目信息

project(Demo1)

2 变量配置

使用mmm变量保存当前目录下所有文件

aux_source_directory(. mmm)
add_executable(Demo ${mmm})

将hello.cpp 赋值给SOURCE 变量

SET(SOURCE ${PROJECT_SOURCE_DIR}/src/hello.cpp)

收集c/c++文件并赋值给变量SRC_LIST_CPP ${PROJECT_SOURCE_DIR}代表区当前项目录

FILE(GLOB SRC_LIST_CPP ${PROJECT_SOURCE_DIR}/src/.cpp)
FILE(GLOB SRC_LIST_C ${PROJECT_SOURCE_DIR}/src/
.c)

3 引入配置

添加子文件

add_subdirectory(math)

指定头文件目录

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)

指定链接库文件目录

LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)

4 生成配置

指定生成目标

add_executable(Demo main.cc a.cc b.cc)

#去变量SRC_LIST_CPP 与SRC_LIST_C 指定生成libmyprint 动态库 默认生成静态库 SHARED指定生成库类型为动态库
ADD_LIBRARY(myprint SHARED ${SRC_LIST_CPP} ${SRC_LIST_C})

5 链接配置

#指定hello 链接库myprint
TARGET_LINK_LIBRARIES(hello myprint)

6 示例

Cmake添加静态链接库

CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
#指定项目名称
PROJECT(HELLO)

#将hello.cpp 赋值给SOURCE 变量
SET(SOURCE ${PROJECT_SOURCE_DIR}/src/hello.cpp)

#指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
#指定链接库文件目录
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)

#将hello.cpp生成可执行文件hello 
ADD_EXECUTABLE(hello ${SOURCE})

#指定hello 链接库myprint
TARGET_LINK_LIBRARIES(hello myprint)

Cmake使用动态链接库

#指定CMake编译最低要求版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
#给项目命名
PROJECT(MYPRINT)
#收集c/c++文件并赋值给变量SRC_LIST_CPP  ${PROJECT_SOURCE_DIR}代表区当前项目录
FILE(GLOB SRC_LIST_CPP ${PROJECT_SOURCE_DIR}/src/*.cpp)
FILE(GLOB SRC_LIST_C ${PROJECT_SOURCE_DIR}/src/*.c)
#指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
#指定生成库文件的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#去变量SRC_LIST_CPP 与SRC_LIST_C 指定生成libmyprint 动态库   默认生成静态库  SHARED指定生成库类型为动态库
ADD_LIBRARY(myprint SHARED ${SRC_LIST_CPP} ${SRC_LIST_C})

设置变量:set file aux_source_directory
指定目录:include_directories link_directories
生成文件 add_executable add_library
链接库 target_link_libraries

VScode+cmake调试c++记录 1、在VScode中Ctrl+shift+P打开搜索,输入cmake搜索并点击 select a kit,在下拉选项中选择GCC,有多个GCC版本时按照自己情况选。所需文件:代码文件,以及CMakeLists.txt,确保能够在终端中使用make命令可以正常编译运行。修改自动生成的launch文件,可以参考我的进行改,有注释的都是需要注意或者改动的地方。2、点击界面左侧的调试与运行,再点击设置那个图标,打开launch.json配置文件。问题1:设置断点后,开始调试断点会变为空心断点,程序在断点不停止。 阅读详情

相关推荐

CMake编译时支持GDB调试

一般在调用./configure时,可以通过设置CXXFLAGS或者CFLAGS使程序可以支持调试,就是可以用GDB查看程序运行的信息,但在cmake编译时,在cmake过程和后面的make及make install都无法加入调试信息。 当然可以加入调试信息的,方法如下: 修改CMakeLists.txt文件,如我修改如下: # Version 2.4 might wor

欣宇专栏 2万+

CMake快速使用+VSCode开发(调试)

学会使用CMake和VSCode开发项目(Linux平台中)

qq_44918555的博客 5701

Cursor搭配cmake实现C++程序的编译、运行和调试

Cursor搭配cmake实现C++程序的编译、运行和调试

weixin_42375828的博客 2万+

VS编译调试CMake工程

vs打开编译调式cmake工程

weixin_43698578的博客 3825

初学c++ VS code + CMake 编译调试helloWord

初学c++ VS code + CMake 编译调试helloWord准备工作 安装 VS code 安装CMake 给VS code安装插件 c/c++ c/c++ clang command adapter c++ intellisense CMake CMake Tools 以上插件有的可能是多余 本人也只是在尝试中 设置CMake首先安装CMake![这里写图片描述]

u014265289的博客 3万+

CMake编译问题解决与调试技巧

本文将介绍一些常见的CMake编译问题,并提供相应的解决方案和调试技巧。记住,CMake是一个强大而灵活的工具,可以根据项目的需求进行自定义配置和调试。解决方案:首先,确保你已经正确安装了相应的依赖库。如果已经安装了依赖库,但CMake仍然找不到它,可以通过设置CMake变量来指定库的路径。解决方案:类似于缺少依赖库的情况,首先确保你已经正确安装了相应的头文件。问题描述:需要为特定的目标设置编译选项,如优化级别、警告级别等。问题描述:在编译过程中,需要获取更多的调试信息,以便定位问题。命令来指定库的路径。

DevWizard的博客 440

VSCode 、Cmake、C++调试教程

VSCODE调试C++程序教程,Cmake基础

weixin_45231460的博客 4647

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段

本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。

weixin_52741870的博客 469

VSCode + CMake 编译调试

一、要进行VSCode的调试首先需要先安装CMake和VSCode,在这就不在进行描述了,可以自行百度安装,一般都是傻瓜式的安装linux和windows类似,我的是在Ubuntu下,安装效果如下图: 二、安装VSCode的插件,可以自行按照我提供的截图的方式安装 三、开始第一个工程。 创建目录,并将CMakeLists.txt和main.cpp放到该目录下,如图:创建CStart目录,并将CMakeLists.txt和main.cpp放到该目录下。 CMakeList.txt 内容,具

huangyifei_1111的博客 1万+

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 303

JetLinks社区版VS企业版:手把手教你用PostgreSQL+Redis搭建物联网中台(Win7实测)

本文详细对比了JetLinks社区版与企业版的核心差异,并提供了在Windows 7系统上,使用PostgreSQL和Redis搭建物联网中台的完整部署教程。文章深入解析了从环境准备、后端服务构建到前端部署的每一步,为开发者在资源有限环境下构建高性价比物联网平台提供了清晰的实战指南。

w1x2y3的博客 305

VS2022编译调试CMake工程

VS2022调试cmake工程

qq_42686479的博客 1万+

Kafka延迟队列实现方案全解析

$ \text{时间轮} = \text{环形数组} + \text{分层设计} $$需要补充代码实例或特定场景的优化方案可进一步细化,此大纲已覆盖核心技术路径。

lz989796的博客 817

VS + OpenCV + cmake,源码编译,使用及调试

文章目录为什么要源码编译工具准备cmake构建VS工程VS编译OpenCVVS使用OpenCVVS调试OpenCV 为什么要源码编译 工具准备 Windows操作系统: OpenCV源码: cmake cmake构建VS工程 VS编译OpenCV VS使用OpenCV VS调试OpenCV ...

吹吹自然风 4280

在 ABAP SEGW OData 服务里,把 Function Import 参数长度校验真正跑起来

SAP Gateway服务中Function Import参数长度校验的实现机制解析:在SEGW中定义Max Length参数后,需通过模型特性USE_STRICT_FUNCTION_PARAM_CHK(7.52+版本支持)启用严格检查。该特性需在MPC_EXT的DEFINE方法中设置,框架会在URI解析阶段拦截超长参数,避免错误进入业务逻辑。对于低版本系统,建议在应用层手动添加校验。这种模型驱动的方式符合Clean Core原则,能有效提升接口健壮性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 493

科研绘图系列:R语言circos图(circos plot)

科研绘图系列:R语言circos图(circos plot)

专注生信领域 3433

【进阶】vscode 中使用 cmake 编译调试 C++ 工程

Linux+Windows 双重本地开发体验。通过集成 MSYS2 环境中的 GCC 编译器与 CMake 跨平台项目管理能力,开发者既可通过 VSCode 可视化界面(命令面板、状态栏按钮)便捷完成配置、编译与调试。凭借 VSCode 强大的扩展生态和智能化工具链,可视化交互、智能代码补全和AI代码生成等功能提高开发效率。

AaronZZH 的博客 2508

Milvus 向量数据库部署方案全景指南:从单机开发到生产级高可用集群

本文系统介绍了Milvus向量数据库的四大部署方案:嵌入式开发利器Milvus Lite、单机简易部署Standalone模式、生产级高可用Cluster模式以及全托管SaaS服务Zilliz Cloud。针对不同应用场景(开发测试、小型应用、大规模生产环境),详细分析了各模式的适用条件、资源配置要求和部署步骤,并提供了关键配置示例。文章强调正确选择部署方案对系统性能至关重要,帮助开发者根据向量规模、QPS和高可用需求,选择最优部署方式,实现资源优化与稳定运行。

reset2021的博客 385

cmake下编译release添加可调试的信息

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_definitions(-DAF_CLASSARRANGE_EXPORTS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-Bsymbolic") set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") set(CMA

qq_36583051的博客 5017

SAP Fiori Elements 扩展实战:UI 层扩展、OData 服务扩展、CDS 视图增强及全流程案例

UI 层扩展主要关注在不修改标准生成界面的基础上,自定义用户界面元素和交互逻辑。典型需求包括:在现有 Fiori Elements 界面上添加新的字段(如表格列或表单项)、增加自定义按钮并绑定操作、以及通过控制器扩展加入事件处理等。无论在 RAP 还是传统 BOPF 架构下,前端 UI 扩展通常采用 SAPUI5 提供的**扩展点(Extension Points)和控制器扩展(Controller Extension)**机制来安全地插入自定义代码。下面分别说明两种后端架构下 UI 扩展的实现方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 902

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CMake混合编译CUDA&&使用VS调试

但是经过个人实践,在只有一个CMakeLists.txt时,该方法无效,因为在读取到这一条语句之前就已经选定编译平台了。在指定编译平台后,就可以正常使用MSVC编译cuda代码了。右下角会有Nsight Monitor的图标,右键,选择。如果项目目录下既有.cu文件又有.cpp文件,先将。使用MSVC时,默认的编译平台是WIN 32。文件启动VS,并设置项目为启动选项。需要看你的GPU架构,我的架构不支持。,其余一切与编译cpp相同。资源管理器中右键项目,选择。打断点,选择VS菜单中的。

qq_43596950的博客 2669

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

基于cmake与vscode对多文件c++项目进行编译与调试

win+Q打开搜索栏,点击“编辑系统环境变量”,点击“环境变量”,点击系统变量中的“path”,将g++与cmake的程序路径添加进环境变量中,这一步的目的是使我们可以在系统的任何位置直接调用程序。选中项目的主文件(main.cpp),按shift+ctrl+p,搜索Add Debug Configuration,选择编译器,即可生成两个文件,在.vscode文件夹下。在vscode中按shift+ctrl+p,搜索CMake:Configure,选择GCC编译器。有以上输出说明成功安装。

VectorSpaces的博客 877

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CMake_02_如何编译可调试文件

软件开发过程中,调试是必不可少的环节之一,让可执行文件”明牌“执行,不会漏过每一行代码,每一个变量的信息。从而帮助开发者快速定位到问题点。在CMake.txt文件中,设置如下编译参数就可以了(适用于CMake 3.14.7 版本)可执行文件中,正是多加了这些字段信息,才让GDB工具可以“明牌”运行。使用gdb工具调试运行上述文件,只能看到一行行指令,是没有代码的。好像没啥区别,过滤下看看。

lkzp12的博客 843

VSCode配置编译和调试CMake工程代码

本文介绍了在VSCode中配置CMake工程进行gdb调试的完整流程。首先需要配置tasks.json文件实现Debug模式下的CMake编译任务,包括设置工作目录、执行命令和依赖关系。然后配置launch.json调试文件,指定可执行程序路径、调试参数和预执行任务。重点说明了不同构建类型的输出路径设置方法,通过CMake语法将Debug和Release版本输出到不同目录。配置完成后可在VSCode中直接进行断点调试,但需注意只有Debug版本才支持调试功能。

LWD的博客 1020

cmake编译时支持gdb调试

一般在调用./configure时,可以通过设置CXXFLAGS或者CFLAGS使程序可以支持调试,就是可以用GDB查看程序运行的信息,但在cmake编译时,在cmake过程和后面的make及make install都无法加入调试信息。 当然可以加入调试信息的,方法如下: 修改CMakeLists.txt文件,如我修改如下: # Version 2.4 might work, but it...

whatday的专栏 1783

VsCode使用CMake与mingw进行开发编译调试

本文介绍如何使用CMake与mingw进行C/C++代码的开发编译调试工作 为什么使用 VsCode + CMake + mingw 本人也用过一段时间VS,如果只想编写windows平台的软件,无疑用VS会更香,若想要代码跨平台运行,那么VS可能没那么方便,并且根据当下国际环境,大厂都需要排除涉A软件,因此暂时也用不上VS。 使用VS替代品 CLion,在公司开发中,使用CLion作为主力开发软件,CLion是JB公司旗下的一款产品,主要用于C/C++的开发,若没听过 CLion 的同学,应该也用过鼎鼎

Mr-Ma Technology 3251
上一篇: 基于C++实现的智慧农业移动巡检系统设计(附源码)
下一篇: Android问题详解
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

onnx

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

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

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

打赏作者

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

抵扣说明:

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

余额充值