在iOS应用程序中添加多个静态Rust库

Dan*_*gen 5 static-linking ios rust

我有两个用Rust编写的库(带有C兼容接口),我正在尝试集成到iOS应用程序中.

在同一个项目中集成两个.a文件时,我会收到错误,因为Rust标准库中的符号现在多次出现:

duplicate symbol _rust_eh_personality in:
    /Users/x/Development/ios-client/Y/Rust/lib1_ffi.a(lib1_ffi.0.o)
    /Users/x/Development/ios-client/Y/Rust/lib2_ffi.a(lib2_ffi.0.o)
...
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题?Rust符号可以提取到一个单独的库中吗?或者符号可以命名空间?

Doe*_*Doe 1

在发布本文时,普遍的理论是,当启用链接时优化 (LTO) 时会出现此问题,并且是由 rustc 生成的静态库中的错误引起的(链接)

作为一项临时措施,建议在此问题解决之前不要启用 LTO。