我有一个Rust项目,想将其作为dylib嵌入到另一个应用程序中。我在Cargo.toml
中设置了crate_type = ["dylib"]
,但我不确定这是否应该改为cdylib
。
构建项目后,它会像预期的那样在target/debug
目录下生成一个libfoo.dylib
,但是通过运行otool -L
命令查看,它还链接到了target/debug/deps/
目录下的一个libfoo.dylib
。如果我要在另一个应用程序中使用它,我需要提供两个dylibs吗?
此外,当crate类型为cdylib
时,它也会生成两个dylibs,但依赖项中的那个文件名结尾会附加一个哈希值。我不确定这两种crate类型之间的区别。
我可以使用rustc避免获取两个dylibs,但我想使用cargo。在其他应用程序中嵌入Rust作为dylib的推荐方法是什么?
我正在macOS 10.12上使用Rust,如果这很重要。