在我们嵌入式中,开发环境多种多样。在windows下进行开发,有各种好用的IDE给我们使用,我们可以图形化地创建工程、配置工程、编译工程。在Linux下,可能就iu没有那么“方便”了。在Linux下进行嵌入式开发,我们需要使用gcc、make、cmake等工具来编译。源文件较少时可以使用直接调用gcc工具进行编译。源码文件较多时,可借用make工具。make通过解析Makefile文件来执行一些gcc命令进行编译。简单的项目,Makefile还可以自己写一写。但实际项目中,我们很少直接编写Makefile,而是借助cmake工具来生成。cmake根据一个CMakeLists.txt文件来生成不同平台的Makefile文件,达到跨平台的作用。已经会Makefile了,还有没有必要学习CMakeLists.txt?关于这个问题,网上各路大神都有自己的一些看法:反对学习cmake、CMakeLists.txt的理由大概是:增加学习成本、不跨平台不需要学 cmake等。支持学习cmake、CMakeLists.txt的理由大概是:跨平台、管理大型项目简单、易扩展、高效率等。我觉得还是有必要学一下的,能用上的概率比较大。关于cmake的学习,强烈推荐一篇博文:分享一篇很不错的CMake入门文章,值得收藏细读!cmake相关推文:实用 | 使用Cmake快速生成visual studio工程手把手教你在Windows下编译、使用开源库xmake简介同cmake一样,xmake也是一个跨平台的安装(编译)工具,是个国产工具。之前分享的TBOX | 一个用c语言实现的跨平台开发库,就是使用xmake来管理的。当然,这两个项目是同一个作者开发的~xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。xmake官网:https://xmake.io/1、支持的平台Windows (x86, x64)macOS (i386, x86_64, arm64)Linux (i386, x86_64, cross-toolchains ..)*BSD (i386, x86_64)Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)iOS (armv7, armv7s, arm64, i386, x86_64)WatchOS (armv7k, i386)MSYS (i386, x86_64)MinGW (i386, x86_64, arm, arm64)Cygwin (i386, x86_64)Wasm (wasm32)Cross (cross-toolchains ..)2、支持的工具链3、支持的语言C/C++Objc/Objc++SwiftAssemblyGolangRustDlangFortranCudaZig (Experimental)4、编译测试多任务并行编译测试:单任务编译测试:官网上的内容很丰富,对xmake做了很详细的介绍,感兴趣的小伙伴可以自己去了解学习。xmake安装、使用下面我们一起来安装、使用,直观地认识一下:针对不同的环境,xmake有多种安装方式。Ubuntu下可使用wget或curl安装,安装命令:bash <(wget https://xmake.io/shget.text -O -)或:bash <(curl -fsSL https://xmake.io/shget.text)下面我们使用curl来安装:xmake的参数很丰富,通过命令 xmake create –help 来查看:我们可以直接通过命令来创建一个工程。创建一个C语言工程,输入命令:xmake create -l c -P ./c_test创建一个C++工程,输入命令:xmake create -l c++ -P ./cpp_test这里的 -l 参数指定工程所用的编程语言, -P 参数指明工程的名称。其中xmake.lua就类似于cmake的CMakeLists.txt文件。里面的内容如:target("c_test")
set_kind("binary")
add_files("src/*.c")其语法类似于CMakeLists.txt但看起来比CMakeLists.txt更简洁。构建工程,输入命令 xmake :运行程序,输入命令 xmake run c_test:调试程序,输入命令 xmake run -d c_test :关于跨平台工具,目前用得比较多的自然是cmake,但大家也可以持续关注一下xmake这一款优秀的构建工具,说不定后面会火~以上就是本次关于xmake的分享,咱们下期见~往期推荐:嵌入式必备之Git的使用 C++在嵌入式中表现如何? 嵌入式中位操作的一些常见用法归纳 分享一份不错的嵌入式资料汇总贴 C语言、嵌入式中几个非常实用的宏技巧 例说嵌入式实用知识之JSON数据 C语言、嵌入式重点知识:回调函数 union在嵌入式中的一种实用应用 学习嵌入式软件开发,C语言要掌握到什么程度? 实用 | 10分钟教你搭建一个嵌入式web服务器 protobuf-c在嵌入式Linux平台的使用实例分享 分享GitHub上一位老外的嵌入式C编码规范(收藏细读) 干货 | 结构体、联合体嵌套使用的一些实用操作
本文出自快速备案,转载时请注明出处及相应链接。