jef*_*ime 4 embed macos dylib rust rust-cargo
我有一个Rust项目,我想作为dylib嵌入到另一个应用程序中。我已经crate_type = ["dylib"]设置了Cargo.toml,但是不确定是否应该这样做cdylib。
当我构建项目时,它会按预期产生libfoo.dylibin target/debug,但查看otool -L它也会与libfoo.dylibin 链接target/debug/deps/。如果要在另一个应用程序中使用它,是否需要同时提供两个dylib?
同样,当crate类型cdylib为时,它也会产生两个dylib,但是deps中的一个将在文件名的末尾添加一个哈希值。我不确定这两种板条箱类型之间的区别是什么。
我可以只使用rustc来避免获得两个dylib,但是我想使用货物。建议将Rust作为dylib嵌入其他应用程序的推荐方式是什么?
如果那很重要,我正在macOS 10.12上使用Rust
经过更多研究,结果证明cdylib静态链接了Rust依赖项,并dylib用于与其他Rust项目的动态链接。
至于嵌入,我发现的一切都建议静态链接Rust库是推荐的方法。为了动态使用Rust库,rpath = true在本[profile]节中的设置解决了冗余dylib的问题。
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |