铁锈货物dylib澄清

问题描述:

我有一个Rust项目,我想嵌入另一个应用程序作为dylib。我有crate_type = ["dylib"]设置在我的Cargo.toml中,但我不确定这是否应该是cdylib铁锈货物dylib澄清

当我生成项目,它产生target/debug如预期libfoo.dylib,但看着otool -L还链接针对target/debug/deps/一个libfoo.dylib。如果我打算在另一个应用程序中使用它,我是否必须提供这两个dylib?

另外,当箱子类型为cdylib时,它也会生成两个dylib,但是deps中的一个将在文件名末尾加上一个哈希。我不确定这两个箱子类型之间有什么区别。

我可以避免使用rustc来获得两个dylib,但是我想使用货物。在其他应用程序中将Rust作为dylib嵌入的推荐方式是什么?

我使用防锈在MacOS 10.12,如果这是显著

了些研究后,事实证明cdylib静态链接锈的依赖,并dylib是与其他防锈项目动态链接。

至于嵌入,我发现的一切都表明静态链接Rust库是推荐的方法。为了动态使用Rust库,在我的[profile]部分中设置rpath = true解决了冗余dylib问题。