在 Linux 上使用rustc
或cargo build
生成共享库而不是可执行文件来编译 Rust 。
我的文件管理器 (thunar) 和file
命令将该文件类型显示为共享库。
并且编译后的二进制文件只能通过终端通过$ /path/to/file
或执行$ cargo run
。
该文件不能像其他可执行文件一样通过双击来执行。命令的
输出file
:
$ file rust_bin
rust_bin:ELF 64 位 LSB 共享对象,x86_64,版本 1 (SYSV),动态链接,解释器 /lib64/ld-linux-x86-64.so.2,用于 GNU/Linux 3.2.0,BuildID[sha1]= cb8cd... ,带有 debug_info,未剥离`
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0
表明这是一个可执行文件而不是一个库。图书馆通常没有解释器集。尝试运行file
一些你知道是可执行文件的文件,以及一些你知道是库的其他文件,然后自己看看。解释器通常是加载和执行共享对象的小型系统程序。一个文件实际上可以同时用作库和可执行文件(最常见的例子是您的libc.so.6
或系统上调用的任何文件;尝试运行它)。底线,没有什么不妥rustc
或cargo
或者运行它们的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句