我想在另一个 Rust 项目中重用从 rustc 生成的 LLVM 位码,两者都针对 wasm32-wasi。我将描述事实:
- 我有一个生成验证码的库 (A)。当我将此库直接编译为 wasm32-wasi 时,它编译没有问题,甚至可以使用 wasmer 或 wasmtime 执行。
- 我有另一个使用验证码生成函数作为外部依赖项的 Rust 应用程序(我们称之为 Harness)。
- 我保存了 A 的中间 llvm 位码,我对其进行了一些分析,我想在 Harness 中再次将其作为外部函数重用。
- 当我尝试使用 链接从 A 保存的 llvm 时
RUSTFLAGS="-C link-arg=A.bc"
,它会将 Harness 应用程序生成为 Wasm 包,但似乎存在损坏问题。A 使用的一些函数现在作为导入注入。 - Harness 应用程序与 A 具有相同的依赖关系,因此,理论上这些函数也可以注入,并且不需要导入 A 在 Wasm 模块中使用的一些函数。
关于如何摆脱重整的任何想法?或者,有一种真正的方法可以获取中间 llvm 位码并在另一个应用程序中再次链接它们。
提前致谢