1 Cmake学习的总结(二)-德赢Vwin官网 网
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嵌入式

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

    关注

    3

    文章

    4327

    浏览量

    62567
  • 编译
    +关注

    关注

    0

    文章

    657

    浏览量

    32851
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    《图说本源产品》系列之:量子计算全物理体系学习

    科技自立自强不能停留在论文中、汇报中和总结中,而是要一个一个产品制造出来。本源,拥有中国第一条超导量子计算机制造链。《图说本源产品》以图片形式,系列展示中国自主量子计算系列产品。产品简介:本源量子
    的头像 发表于 07-26 08:23 327次阅读
    《图说本源产品》系列之<b class='flag-5'>二</b>:量子计算全物理体系<b class='flag-5'>学习</b>机

    执行build.py menuconfig时报“ Unknown CMake command \"__add_uf2_targets\".”错误,请问是什么原因?

    执行build.py menuconfig时报“Unknown CMake command \"__add_uf2_targets\".”错误,请问这是什么原因?
    发表于 06-27 06:21

    idf.py menuconfig的时候总是提示cmake301 error的原因?

    idf.py menuconfig的时候总是,提示cmake301 error 提示没有这个目录,手动创建目录之后,还会出现更多依赖目录 例: CMake Error at /home
    发表于 06-20 06:01

    刚刚装好esp32 elipse CMAKE编译环境,hello word编译不通过怎么解决?

    CMake Error at E:/Work/eclipse-esp/esp-idf/tools/cmake/component.cmake:305 (message): Include
    发表于 06-18 06:15

    华为PCBA检查规范设计总结

    福利来啦! 给大家分享《华为PCBA检查规范设计总结
    的头像 发表于 06-15 16:25 2123次阅读
    华为PCBA检查规范设计<b class='flag-5'>总结</b>

    嵌入式学习-飞凌ElfBoard ELF 1板卡 - 如何在Ubuntu中编译OpenCV库

    :Ubuntu18.04 OpenCV版本:OpenCV3.4.1 一、获取Opencv源码 从OpenCV官网下载OpenCV源码(opencv.org/releases/page/5/) 、搭建
    发表于 06-07 09:21

    Espressif-IDE编译报错的原因?

    大家好。我头一回使用Espressif-IDE,开始学习。我新建了工程,使用hello_world模版,编译时报错,是关于python的。错误如下: C
    发表于 06-07 07:34

    VSCode中编译过程cmake错误的原因?

    VSCode中编译产生一个问题,问题如下: CMake Error at CMakeLists.txt:1 (idf_component_register):Unknown CMake command
    发表于 06-06 06:48

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?

    在计算机视觉和深度学习领域,NCNN(Netural Network Computer Vision)是一个轻量级的神经网络计算框架,被广泛应用于各类嵌入式设备和移动平台。今天,让我们一同跟随共创
    发表于 05-29 17:24

    飞凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN

    在计算机视觉和深度学习领域,NCNN(Netural Network Computer Vision)是一个轻量级的神经网络计算框架,被广泛应用于各类嵌入式设备和移动平台。今天,让我们一同跟随共创
    发表于 05-29 08:53

    RISC-V Linux开发环境脚本

    比较多的RISC-V SOC Linux开发环境使用CMake/Makefile,虽然也知道些怎么用,但有没完整系统的这方面学习资料?如语法、脚本链接结构等,可以分享下深入学习
    发表于 03-31 12:48

    请问一下CMake和Make之间的区别有哪些?

    CMake和Make是构建软件,其工作涉及将源代码转换为可执行程序。CMake和Make是旨在实现构建过程自动化的工具,帮助开发者节省时间和精力。
    的头像 发表于 02-27 11:44 1754次阅读

    单片机编程实例总结

    单片机编程实例总结
    的头像 发表于 01-16 09:17 1031次阅读