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

    文章

    4273

    浏览量

    62291
  • 编译
    +关注

    关注

    0

    文章

    647

    浏览量

    32758
收藏 人收藏

    评论

    相关推荐

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

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

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

    科技自立自强不能停留在论文中、汇报中和总结中,而是要一个一个产品制造出来。本源,拥有中国第一条超导量子计算机制造链。《图说本源产品》以图片形式,系列展示中国自主量子计算系列产品。产品简介:本源量子
    的头像 发表于 07-26 08:23 254次阅读
    《图说本源产品》系列之<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 2032次阅读
    华为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

    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

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

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

    Linux下如何使用CMake编译程序

    今天分享一篇关于 cmake 的相关文章,通过这个工具可以生成本地的Makefile。让我们不用去编写复杂的Makefile。
    的头像 发表于 11-21 09:28 1532次阅读
    Linux下如何使用<b class='flag-5'>CMake</b>编译程序

    Windows下编译工具CMake的安装和最简使用

    MCU的开发环境一般在Windows操作系统上,简单的工程一般直接编写Makefile文件后使用make工具构建程序,复杂的工程一般借助CMake来生成Makefile文件后使用make工程构建程序
    的头像 发表于 11-14 10:18 7073次阅读
    Windows下编译工具<b class='flag-5'>CMake</b>的安装和最简使用

    CMake构建后的项目结构解析

    一、 CMake构建后的项目结构解析(Analysis of the Project Structure After CMake Build) 1.1 CMake构建后的目录结构(Directory
    的头像 发表于 11-10 10:27 1776次阅读
    <b class='flag-5'>CMake</b>构建后的项目结构解析

    在Linux下如何使用CMake编译程序

    install cmake 安装完成后,在终端下输入: cmake -version 查看cmake版本 这样cmake就安装好了。
    的头像 发表于 11-08 16:15 5866次阅读
    在Linux下如何使用<b class='flag-5'>CMake</b>编译程序

    模型算法总结

    本文将继续修炼回归模型算法,并总结了一些常用的除线性回归模型之外的模型,其中包括一些单模型及集成学习器。 保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归
    的头像 发表于 11-03 10:39 575次阅读
    模型算法<b class='flag-5'>总结</b>