跨平台构建工具,cmake是 yyds ? bjd !

👇 星标「嵌入式大杂烩」,一起进步!👇

大家好,我是ZhengN。本次给大家分享一个优秀的跨平台构建工具。

在我们嵌入式中,开发环境多种多样。在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++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang
  • Fortran
  • Cuda
  • Zig (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的分享,咱们下期见~

(0)

相关推荐

  • CMake编译工具与项目构建

    文章导读 本文从C/C++代码的编译过程入手,弄清楚Make与Makefile,CMake与CMakeLists的关系,最后从CMakeLists的语法规则入手给出示例带大家熟悉如何编写一份简单的编译 ...

  • 使用 cmake 来搭建跨平台的应用程序框架:C语言版本

    嵌入式专栏 149篇原创内容 公众号 来源 | IOT物联网小镇 本文为大家分一下使用 cmake 来搭建跨平台的应用程序框架. 一.前言 我们在写应用程序的过程中,经常需要面对一个开发场景:编写跨平 ...

  • JNI通过构建工具封装Swig一步生成.so

    #指定CMake的最小版本 cmake_minimum_required(VERSION 3.4.1) #需要修改的地方 #1.指定Swig生成的java接口的包名,修改"com.geo.e ...

  • 【译】下一代前端构建工具 ViteJS 中英双语字幕

    Ivocin高级前端进阶1周前 原视频地址:Next generation frontend tooling with ViteJS ✨ Open Source Friday ✨ 中英文字幕视频地址( ...

  • Jenkins常用构建工具

    Jenkins构建工具集成 Maven Maven下载地址 安装步骤: # 解压[root@C7-01 ~]# tar xvf apache-maven-3.6.3-bin.tar.gz -C /us ...

  • pybuilder-用纯Python编写的连续构建工具

    PyBuilder是一种使用100%纯Python编写的软件构建工具,主要针对Python应用程序. PyBuilder基于依赖的编程概念,但它还具有强大的插件机制,允许构建生命周期的构建类似于从其他 ...

  • bitbake-用于嵌入式Linux的类似make的构建工具

    介绍 从根本上讲,BitBake是一个通用的任务执行引擎,它使Shell和Python任务可以在复杂的任务间依赖关系约束内有效地并行运行.BitBake的主要用户之一OpenEmbedded以此内核为 ...

  • 用于构建AI语言翻译系统的工具

    在本系列文章中,我们将向您展示如何使用深度学习来创建自动翻译系统.本系列可以视为分步教程,可以帮助您了解和构建神经元机器翻译. 本系列假定您熟悉机器学习的概念:模型训练,监督学习,神经网络以及人工神经 ...

  • 8个翻译工具横向对比,到底谁才是yyds?

    上个星期写的那篇 CopyTranslator 被大家说惨了. 评论里要不在问哪个翻译的 API 好用,要不在说 DeepL 是 yyds. 本意上我推荐 CT 是相中了它监听剪切板的同时,顺带着把排 ...

  • 3.6 万 Star!开源跨平台的文件同步工具

    简介 Syncthing 采用 Go 语言编写,它是一个免费的.跨平台的文件同步工具,其独有的对等自由块交换协议,可以在两台甚至更多的计算机之间同步文件,同步意味着在其中一台设备上进行的创建.修改或删 ...