上面是一个开发中的经典问题场景,发生的原因通常是:开发者工作机上的某些依赖项没有安装在测试或者客户环境中,导致程序无法运行或者报错。
如何有效地避免这个尴尬的场景呢?那就需要一个持续的、可复用的自动构建流程,这样会促使团队保证他们的软件在 IDE 和开发者工作机之外也能够编译并运行基本的单元测试集。
今天给大家介绍一款非常好用的 C/C++ 项目构建工具 —— Xmake。目前它已经在 Github 收获了 2.9K star、300+ fork,并且处理了 900+ issues、5400+ Commits,star 数也超过了大部分同类构建工具,逐渐逼近 cmake。同时, Xmake 在易用性上完全赶超 cmake,对新手非常友好,短时间内就能入门。
Xmake 简介
**友好 —— **xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
**强大 —— **虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C++依赖库的集成使用问题。
**快速 —— **目前,xmake主要用于C/C++项目的构建,但是同时也支持其他native语言的构建,可以实现跟C/C++进行混合编译,同时编译速度也是非常的快,可以跟Ninja持平。
Xmake 的****安装
使用curl
bash <(curl -fsSL https://xmake.io/shget.text)
使用wget
bash <(wget https://xmake.io/shget.text -O -)
使用powershell
Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content
简单的工程描述
target("console")
set_kind("binary")
add_files("src/*.c")
包依赖描述
构建工程
$ xmake
运行目标
$ xmake run console
调试程序
$ xmake run -d console
入门教程
Xmake 的作者在实验楼发布了一门 Xmake 入门和进阶课程,以边学边练习的方式快速学习 xmake 的使用,带你轻松构建 C/C++ 项目。
课程以循序渐进的方式,带你入门和进阶 xmake,从最基础的编译配置,到复杂项目的定制化组织和维护,在课程最后几节,我们还通过实战的方式,一步步带你体验第三方 C/C++ 项目的移植编译,以及 vscode/xmake 集成环境的可视化编译操作流程。最后一节实验中,我们还会讲解如何使用 xmake 和 vscode 去编译开发基于 Qt 的应用程序。