我正在尝试使用Rust创建一个静态可执行文件.我不是试图静态链接特定的库,我试图创建一个根本不使用动态链接的可执行文件.我有以下(否则工作)测试:
$ cat hello.rs
fn main()
{
print!("Hello, world!\n");
}
$ rustc hello.rs -o hello
$ file hello
hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, [etc]
Run Code Online (Sandbox Code Playgroud)
请注意dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2.statically linked相反,静态可执行文件.(就我而言corrupted section header size,如果我能说服Rust复制那个,我会感到非常惊讶.)
我需要传递什么选项rustc才能使它生成一个实际的静态可执行文件(具体来说:一个甚至file同意静态链接的选项).
我在一个 Linux 系统上编译了 Rust 二进制文件,并尝试在另一个 Linux 系统上运行它。当我运行该程序时,我得到:
./hello-rust: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./hello-rust)
Run Code Online (Sandbox Code Playgroud)
系统上安装了 GLIBC 又名 libc6,但是版本是 2.31 有没有办法为较新版本的 libc6 编译程序?