0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Cmake学习的总结(二)

电子设计 ? 来源:电子设计 ? 作者:电子设计 ? 2020-12-24 17:54 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,上次给大家分享了第一篇 cmake 文章:cmake学习总结(一),今天继续给大家分享cmake。那么废话就不多说,开始内容分享。

用好 Cmake,高兴一整天(甚至……):

1、多个源文件,使用命令 aux_source_directory(dir var):

在上一篇文章最后结尾的时候,有一个问题,就是在同一目录下面,有多个源文件的时候,这个时候你不能都往下面第三条命令里面一直手动添加源文件,那工作效率多低啊:

cmake_minimum_required(VERSION 2.8)

project(main)

add_executable(main main.c test1.c)

于是乎为了解决这种低效率的操作,在 cmake 里面有一条指令可以完全搞定这个问题;不过为了说明问题,在这之前我又添加了两个文件:test2.c 和 test2.h:

root@txp-virtual-machine:/home/txp/test# ls

1 cmake_install.cmake main.c test1.h touch1.c

CMakeCache.txt CMakeLists.txt Makefile test2.c touch1.h

CMakeFiles main test1.c test2.h

test2.c内容如下:

#include <stdio.h>

#include "test2.h"

void func1()

printf("i like the cmake");

test2.h内容如下:

#ifndef _TEST2_H_

#define _TEST2_H_

void func1();

#endif

最后main.c里面调用了func1函数:

#include <stdio.h>

#include "test1.h"

#include "test2.h"

int main(void)

func1();

func(8);

printf("TXP嵌入式");

return 0;

接下来我们的重点就来了,在cmake里面可以使用aux_source_directory(dir var)就可以搞定上面效率低的问题,接下来我们在CMakeLists.txt这样操作:

cmake_minimum_required(VERSION 2.8)

project(main)

aux_source_directory(. SRC_LIST)

add_executable(main ${SRC_LIST})

然后再进行编译:

root@txp-virtual-machine:/home/txp/test# cmake .

-- Configuring done

-- Generating done

-- Build files have been written to: /home/txp/test

root@txp-virtual-machine:/home/txp/test# make

Scanning dependencies of target main

[ 25%] Building C object CMakeFiles/main.dir/main.c.o

[ 50%] Linking C executable main

root@txp-virtual-machine:/home/txp/test# ./main

i like the cmake

the b is 8

TXP嵌入式

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4388

    浏览量

    65306
  • 编译
    +关注

    关注

    0

    文章

    680

    浏览量

    34311
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ubuntu编译stm32cubmax生成的cmake工程,在最后链接阶段报错,怎么解决?

    我是直接stm32cubmax 生成的cmake 工程,我在Ubuntu 编译的时候找不到这个-lc_none , 但是我看了我的编译器安装路径有一个nano.specs ,cmake 连接选项也有
    发表于 08-08 07:30

    SEGGER工具链集成到CMake和VS Code了

    SEGGER公司已将其嵌入式开发工具链集成到了广泛使用的CMake构建配置工具中,这意味着基于Visual Studio Code(VS Code)代码编辑器的应用开发可以方便的使用SEGGER工具实现了。
    的头像 发表于 07-23 15:06 ?397次阅读

    相关协议信号总结

    电子发烧友网站提供《相关协议信号总结.xlsx》资料免费下载
    发表于 06-25 15:34 ?5次下载

    基于LockAI视觉识别模块:C++维码识别

    维码识别是视觉模块经常使用到的功能之一。我们将演示如何使用基于瑞芯微RV1106的LockAI视觉识别模块进行维码识别。 源代码网址:https://gitee.com/LockzhinerAI
    发表于 05-26 09:57

    永磁同步电机阶迭代学习控制

    针对永磁同步电机存在的周期性脉动问题,提出了一种阶 PD-型迭代学习控制策略,该算法能够 有效实现最优跟踪控制 。利用卷积的推广 Young 不等式,获得了系统跟踪误差在 Lebesgue-p
    发表于 03-26 14:28

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解决?

    使用STM32CubeMX生成CMake工程之后,对STM32xxxx_FLASH.ld进行了修改。然后再次使用STM32CubeMX对工程进行修改的时候,STM32xxxx_FLASH.ld文件汇总被修改的部分会被恢复原状。请问各位有没有好的办法能够解决这个问题,烦请指教!!!
    发表于 03-10 06:52

    在CubeMX V6.13.0版本上配置的CMake工程无法通过编译怎么解决?

    在 CubeMX V6.13.0 版本上配置的 CMake 工程无法通过编译,报错如下图
    发表于 03-07 16:59

    为什么无法在OpenVINO? 2021.3源中使用CMAKE编译ONNX模型?

    尝试从源版本 2021.3 编译OpenVINO? 错误: ~/项目/OpenVINO/cmake-build-debug/_deps/ext_onnx-src/onnx/onnx_pb.h
    发表于 03-05 08:29

    TOF学习总结

    iToF(间接飞行时间)技术中,波长越短,分辨细节的能力越好,主要原因与光的波动特性和调制信号的特性密切相关。以下是详细解释:1. 光的波动特性:波长与分辨率的关系波长越短,空间分辨率越高:光的波长决定了其能够分辨的最小细节。根据光学理论,分辨率与波长成反比,波长越短,能够分辨的特征尺寸越小。例如,可见光的波长(400-700 nm)比红外光(通常用于iToF,波长约850 nm)更短,因此可见光能够分辨更细微的细节。衍射极限:光的衍
    发表于 02-25 17:49 ?0次下载

    如何优化BP神经网络的学习

    训练过程中发生震荡,甚至无法收敛到最优解;而过小的学习率则会使模型收敛速度缓慢,容易陷入局部最优解。因此,正确设置和调整学习率对于训练高效、准确的神经网络模型至关重要。 学习率优化
    的头像 发表于 02-12 15:51 ?1060次阅读

    关于中断知识学习总结笔记

    《关于中断知识学习总结笔记》 一、中断的核心概念 中断是计算机运行过程中的一种重要机制,它能够使计算机在执行主程序时,暂停当前任务去响应特定的事件或请求,处理完成后再返回主程序继续执行。这就像是一个
    发表于 11-23 11:23

    一种基于深度学习维拉曼光谱算法

    近日,天津大学精密仪器与光电子工程学院的光子芯片实验室提出了一种基于深度学习维拉曼光谱算法,成果以“Rapid and accurate bacteria identification
    的头像 发表于 11-07 09:08 ?831次阅读
    一种基于深度<b class='flag-5'>学习</b>的<b class='flag-5'>二</b>维拉曼光谱算法

    GPU深度学习应用案例

    能力,可以显著提高图像识别模型的训练速度和准确性。例如,在人脸识别、自动驾驶等领域,GPU被广泛应用于加速深度学习模型的训练和推理过程。 、自然语言处理 自然语言处理(NLP)是深度学习的另一个重要应用领域。GPU可以加速NL
    的头像 发表于 10-27 11:13 ?1603次阅读

    《AI for Science:人工智能驱动科学创新》第章AI for Science的技术支撑学习心得

    for Science的技术支撑”的学习心得,可以从以下几个方面进行归纳和总结: 1. 技术基础的深入理解 在阅读第章的过程中,我对于AI for Science所需的技术基础有了更加深入的理解。这一章详细阐述了
    发表于 10-14 09:16

    AM17x功耗总结

    电子发烧友网站提供《AM17x功耗总结.pdf》资料免费下载
    发表于 10-12 09:14 ?0次下载
    AM17x功耗<b class='flag-5'>总结</b>