首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  1
     
  •   waruqi · 7 天前 · 1768 次点击

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

    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 关注此项目。

    25 回复  |  直到 2019-07-12 16:56:20 +08:00
        1
    ResetTrap   7 天前
    支持一下
        2
    soli   7 天前
    支持!
        3
    zjsxwc   7 天前
    试了下,应该是用的人少,不爽

    比如我要用 boost,xmake 找不到

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

    apt install 到系统的库,通过 find_packages("xxx") 照样可以直接使用,也有类似`find_xxx.lua`的处理逻辑,可以定制化支持。
        5
    V4Exp   7 天前
    能支持在 VS 中创建 Linux 项目就用。
        6
    stebest   7 天前
    已 star
        7
    waruqi   7 天前
    @V4Exp xmake 自身是支持交叉编译的,只要 win 上有 linux 编译工具链,就能编译 linux 项目

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

    不过 vscode-xmake 的那个插件,目前支持在 vscode 中与 xmake 进行集成编译,以及断点调试。。
        11
    waruqi   7 天前
        12
    glfpes   7 天前
    腾讯的 blade 有用的吗?也是一种选择。
        13
    0226   7 天前
    难道不是 Bazel 吗
        14
    waruqi   7 天前
    @glfpes
    @0226 其他的构建工具也都不错,各有优劣,可自己试用对比下
        15
    congeec   7 天前 via iPhone
    @waruqi 我看你坚持推广好几年了,真不容易
        16
    waruqi   7 天前
    @congeec 我也就每隔 3、4 个月,以及发新版的时候偶尔推一下。。 = =
        17
    eliteYang   7 天前   ♥ 1
    开源项目不易,支持一下
        18
    waruqi   7 天前
    @eliteYang 多谢支持
        19
    doing1   7 天前
    好崇拜会写代码的人,感觉好聪明的样子
        20
    marknote   7 天前 via iPhone
    顶一个!已 star
        21
    iwtbauh   7 天前 via Android
    其实 Makefile 足够了,如果能使用 GNU make 扩展的话。很舒服。

    唯一的缺点是会破坏可移植性。比如 FreeBSD 系统用的是 BSD make (虽然也是可以安装 devel/gmake )。因此只在特定操作系统的项目中使用。比如 Linux 内核的构建系统 kbuild,就是基于 GNU Makefile 的一组宏。kbuild 也被用于特定 Linux 的项目,如 busybox,openwrt 等

    如果可移植性比较重要。则使用 GNU autotools ( autoconf,automake 等)之类的工具就非常舒服了。

    cmake 这种东西,前向兼容能力一般,还非常臃肿,灵活性也很不好,反正我是很不喜欢用。

    xmake 的文档我看了看,但是也没有能提起来我兴趣的地方。
        22
    gerorim   7 天前
    习惯使用 makefile
    支持一下,有机会在项目中试试
        23
    waruqi   7 天前
    @iwtbauh 这个就看个人喜好了。比如我,对 autotools 之类的就是深恶痛觉,没感觉一丁点好的地方,所以才折腾了 xmake。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1311 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 17:30 · PVG 01:30 · LAX 10:30 · JFK 13:30
    ♥ Do have faith in what you're doing.