Xmake基础---多目标程序的依赖编译

本文介绍了Xmake如何处理多目标程序的依赖编译顺序,通过`add_deps`接口控制链接顺序。此外,还探讨了静态库与可执行程序的组合编译,以及依赖配置的可见性和级联依赖继承,简化了项目配置。
摘要由CSDN通过智能技术生成

在默认情况下,xmake 在编译多个目标程序时,会通过多任务并行编译来提升项目的整体编译效率,不过每个 target 目标程序实际的编译顺序是未定义的。

然而有时候,某些项目工程中的多个目标程序之间是有依赖关系的,如果不控制编译顺序,那么有可能会错误地优先编译一些需要滞后的程序,就会导致编译出错。

这种情况下通过 add_deps() 配置接口去控制指定 target 的编译依赖顺序,对一些依赖静态库、动态库的可执行程序非常有用。

链接和编译的依赖控制

为了了解如何使用 add_deps 来控制编译依赖顺序,我们先重新创建个 deps_test 的空工程。

cd ~/Code
xmake create deps_test

然后修改 deps_test/xmake.lua 配置。

target("test1")
    set_kind("binary")
    add_files("src/*.cpp")
    add_deps("test2")

target("test2")
    set_kind("binary")
    add_files("src/*.cpp")
    add_deps("test3")

target("test3")
    set_kind("binary")
    add_files("src/*.cpp")

上述配置,我们使用 add_deps 将三个 target 目标程序的依赖顺序调整为:test1 依赖 test2, test2 依赖 test3。

那么执行编译的时候的,test3 会优先编译,然后是编译 test2,最后才编译 test1。

执行 xmake 查看实际的编译顺序。

 

通过上图,我们可以看到最后三个程序的实际链接顺序确实已经按照刚刚设置的依赖顺序进行执行了,不过其 C++ 源文件还是在最开始就执行编译了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值