【发布时间】:2017-10-04 15:29:04
【问题描述】:
我有两个用 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)
...
如何解决?可以将 Rust 符号提取到单独的库中吗?或者符号可以命名空间吗?
【问题讨论】:
-
您可以尝试先将两个依赖项编译到一个仅使用 rust 的 .a 库中,然后将生成的 .a 集成到您的项目中。
-
当然,这在我的情况下可行,但如果您集成第三方库,这在一般情况下不是一个好的解决方案。
标签: ios rust static-linking