美文网首页RTOS和GUI_基于英飞凌tc2x及stm32开发板
用cmake来编译iar工程--Apple的学习笔记

用cmake来编译iar工程--Apple的学习笔记

作者: applecai | 来源:发表于2023-06-30 19:51 被阅读0次

    一,前言

    在看iar帮助的时候有介绍cmake来做构建系统,不过之前cmake仅看到过greenhill的,但是从来没用过嵌入式构建使用cmake的。于是在iar官网找到了一个教程及demo,里面还用到了ninja,我理解ninja和cmake不是类似的东东,为什么2个要一起用。ninja.exe下载后直接解压到c盘windows文件夹下。

    二,实践体验

    image.png

    三,分析

    看了生成的_builds文件夹都没找到makefile,只有ninja相关的build文件,我突然明白了,编译elf用的等于不是make命令了,变成了ninja命令,所以找不到cmake构建的makefile了。
    cmake语法-G后面是生成器类型,iar用cmake编译help中写了要3.23版本之上,所以我下载了3.26版本。所以Ninja Multi-Config可以理解为是一个配置项。

    Ninja Multi-Config           = Generates build-<Config>.ninja files.
    

    于是按help的说明Ninja Multi-Config主要目的是用来生成构建类型的,比如我们常用的debug和release。仔细想想这个确实很重要,否则不区分类似,文件夹会很乱的。反正我之前没有关注过这块内容,网上搜索了下使用方法如下
    在使用单配置的 Ninja 的时候,你需要在配置的时候进行指定

    cmake . -B build -GNinja -DCMAKE_BUILD_TYPE=Release
    cmake --build build
    

    而使用多配置的 Ninja Multi-Config 的时候,你需要在启动构建的时候进行指定,不指定应该就是默认debug。

    cmake . -B build -G "Ninja Multi-Config"
    cmake --build build --config=Release
    

    四,用gui的方式

    搞明白关键内容一个是交叉编译,一个是选择Ninja为配置类型。我就尝试自己从0开始做一个工程,当然我喜欢用gui的方式,关键设置如下,然后选择一个编译的cmake文件,关于编译器的cmake文件也是我第一次看,cmake的语法理解起来很容易,这个文档就是类似在makefile中最开始我手写的相关编译的应用程序及路径的定义。


    image.png

    五,小结

    基本上主要的cmake嵌入式构建系统框架算看明白了。原来cmake也可以很容易的进行嵌入式代码构建,之前我用cmake主要是linux应用开发。从语法的简单性及扩展功能的强大性上,其实我更喜欢cmake,不过以前我使用cmake总感觉它对其它软件有依赖性,configure的时候若出错我就会卡住,所以直接写makefile灵活性更强。不过今天用起来那么顺利,让我对cmake来构建嵌入式软件突然产生了好感~

    相关文章

      网友评论

        本文标题:用cmake来编译iar工程--Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/errtudtx.html