Rust没有编译成Linux中的可执行文件

Ami*_*miy 0 linux rust rust-cargo

在Linux上编译生锈rustccargo build生成共享库而不是可执行文件.
我的文件管理器(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 ...,with debug_info,not stripped`

n. *_* m. 7

  1. 您的编译器生成可执行文件.共享库和动态链接的可执行文件之间没有太大区别.它们遵循相同的基本格式.该字符串interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0表示这是可执行文件而不是库.库通常没有解释器集.尝试运行file一些您知道可执行文件的文件,以及您知道的其他文件库,并亲自查看.解释器通常是一个加载和执行共享对象的小型系统程序.文件实际上可以同时作为库和可执行文件(最常见的例子是您libc.so.6或您在系统上调用的任何内容;尝试运行它).
  2. 如果您可以从shell运行此可执行文件而不是从文件管理器运行,则问题出在文件管理器上,而不是可执行文件.您可能必须专门指示文件管理器您的程序应该在终端中运行.这通常可以通过创建描述您的程序的.desktop文件来完成.此外,桌面工具可能会错误地将现代可执行文件识别为共享库.是一个常见问题.它也可以通过为您的可执行文件创建.desktop文件来解决.它不以任何方式生锈.

底线,没有什么不妥rustccargo或者运行它们的方式.