gpt4 book ai didi

rust - 如何使用Cargo项目的二进制输出作为另一个项目的输入?

转载 作者:行者123 更新时间:2023-12-03 11:48:57 30 4
gpt4 key购买 nike

为了减小Rust程序(在我的代码中称为runtime)的可执行文件大小,我试图对其进行压缩,然后将其包含在第二个程序(称为szl)中,该程序将其解压缩并执行。

我通过在szl中使用Cargo build script来完成此任务,该命令会打开runtime的输出二进制文件,对其进行压缩,然后生成一个文件供include_bytes!使用。

这种方法的问题是依赖关系未正确处理。例如,Cargo可能会尝试在szl之前构建runtime(并且失败),并且当修改runtime的源代码时,不会重建szl

有没有办法告诉Cargo szl取决于runtime的二进制文件(以及可传递地取决于runtime的源代码),还是应该使用其他方法(例如外部Makefile)?

最佳答案

虽然不完全是您的用例,但您可以将其与links manifest key一起使用。这将允许您表达两个程序之间的依赖关系,并且可以使用DEP_FOO_KEY变量传递更多信息。

在您采取此类严厉措施之前,尝试其他已知的减小 rust 迹二进制大小的策略(例如调用剥离,删除调试符号,LTO,panic = abort)等可能是值得的。

关于rust - 如何使用Cargo项目的二进制输出作为另一个项目的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61493741/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com