如果您不使用任何 crate ,也不自己链接到FFI库,那么您的可执行文件应该是独立的.例如,一句简单的"Hello world"就可以开箱即用.
在真实的项目中,您将使用外部 crate ,这取决于您使用的 crate .它们中的大多数没有任何额外的依赖项,也可以开箱即用,但一些机箱需要安装相应的库(最明显的是针对图形用户界面).
在Unix系统上,命令:ldd ./target/release/my_crate
将列出所需的库:
> ldd ./target/release/hello
linux-vdso.so.1 (0x00007ffefd736000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0299dc0000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f0299db6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0299d95000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0299d90000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0299bd0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0299e5e000)
这些都是标准库,应该已经安装在任何系统上,所以这个程序没有特别的要求,应该在任何地方都可以工作.
在Windows上,您可以使用Dependencies Walker来查找所需的库.