现代化的 C/C++构建工具,除 cmake 之外的另一选择

2019-07-12 08:04:37 +08:00
 waruqi

最近更新了下文档站,过来晒一贴。

xmake 的新版文档站点: https//xmake.io中文站

如果大家不习惯 cmake 的语法,或者觉得难于上手,学习成本过高,那么可以试下这款基于 lua 的跨平台 c/c++构建工具: https://github.com/xmake-io/xmake

xmake 主打轻量,快速,语法简洁明了易上手,采用直接构建,无任何依赖,甚至不依赖 make/makefile

不同平台完全一致的构建行为,并且在支持 conan/vcpkg/clib/brew 等第三方包仓库的同时,还自建了自有包依赖仓库管理xmake-repo,更好的处理跨平台依赖包问题。

依赖包编译效果见:

另外 xmake 除了支持 c/c++,还支持多语言混合编译,只要是能生成 native 二进制兼容的语言,大部分都能支持,像 objc, swift, dlang, rust, asm 等,golang 也做了一些支持,但还不完善。

关于构建项目类型方面,除了基础的静态库,动态库和终端程序编译,还内置了对 cuda, qt, wdk 驱动,mfc, winsdk 等项目类型的支持,用户可自由搭配 xmake-vscode, xmake-idea 等插件,在 vscode, idea, clion 等编辑环境编译和开发 qt, wdk, cuda 等项目。

当然,xmake 也提供了高度的灵活性和扩展性,方便用户自己定制化扩展其他项目的构建。

大伙有兴趣的话可以下载试试体验下,xmake 内置了 luajit,所以安装完全无第三方依赖,非常轻量。

具体安装过程,可以看下文档:xmake 安装和快速上手

更多关于 xmake 的描述和介绍,大家可以到Github上去查看,或者可以浏览下 xmake 的文档站点,里面有完整详细的中英文文档,如果大家感兴趣的话,也欢迎 star 关注此项目。

6589 次点击
所在节点    程序员
26 条回复
ResetTrap
2019-07-12 08:40:18 +08:00
支持一下
soli
2019-07-12 09:13:24 +08:00
支持!
zjsxwc
2019-07-12 09:17:25 +08:00
试了下,应该是用的人少,不爽

比如我要用 boost,xmake 找不到

cmake 由于大家都认同,所有 apt install libXXX 后,会带上 `XXXConfig.cmake ` 或 `FindXXX.cmake`,舒服
waruqi
2019-07-12 09:21:24 +08:00
@zjsxwc 内置仓库确实还没有 boost,不过 xmake 也支持直接集成使用 vcpkg/conan/brew 的包,里面有 boost,照样可用。。

apt install 到系统的库,通过 find_packages("xxx") 照样可以直接使用,也有类似`find_xxx.lua`的处理逻辑,可以定制化支持。
V4Exp
2019-07-12 09:24:40 +08:00
能支持在 VS 中创建 Linux 项目就用。
stebest
2019-07-12 09:26:19 +08:00
已 star
waruqi
2019-07-12 09:31:38 +08:00
@V4Exp xmake 自身是支持交叉编译的,只要 win 上有 linux 编译工具链,就能编译 linux 项目

而 xmake 也支持支持生成 vs 工程,下个版本还会支持 vs 中集成 xmake 来使用,只要 win 装有 linux 的交叉编译工具链,那么之后新版本生成的 vs 工程,调用 xmake 编译的时候,就可以在 vs 中切到对应 linux 工具链编译 linux 项目。。
abcbuzhiming
2019-07-12 09:34:13 +08:00
@waruqi 楼主,请问你第一张结构示意图是用什么软件画的
V4Exp
2019-07-12 09:42:48 +08:00
@waruqi 最理想的效果是和 VS linux 项目差不多,可以连接远程机器进行部署调试。
VS 自带的 Linux 项目实际使用中体验不是很好,有 Bug。这个要求会不会太高了?
waruqi
2019-07-12 09:46:29 +08:00
@V4Exp xmake 只是个构建工具,不是 ide,对应提供的 ide/编辑器集成插件,目前还没法做到远程部署和调试。。

不过 vscode-xmake 的那个插件,目前支持在 vscode 中与 xmake 进行集成编译,以及断点调试。。
waruqi
2019-07-12 09:46:48 +08:00
glfpes
2019-07-12 09:53:51 +08:00
腾讯的 blade 有用的吗?也是一种选择。
0226
2019-07-12 10:01:26 +08:00
难道不是 Bazel 吗
waruqi
2019-07-12 10:09:45 +08:00
@glfpes
@0226 其他的构建工具也都不错,各有优劣,可自己试用对比下
congeec
2019-07-12 10:11:25 +08:00
@waruqi 我看你坚持推广好几年了,真不容易
waruqi
2019-07-12 10:13:39 +08:00
@congeec 我也就每隔 3、4 个月,以及发新版的时候偶尔推一下。。 = =
eliteYang
2019-07-12 10:45:30 +08:00
开源项目不易,支持一下
waruqi
2019-07-12 11:14:11 +08:00
@eliteYang 多谢支持
doing1
2019-07-12 11:16:26 +08:00
好崇拜会写代码的人,感觉好聪明的样子
marknote
2019-07-12 11:18:28 +08:00
顶一个!已 star

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582217

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX