Tôi đang cố tạo một tệp thi hành tĩnh với Rust. Tôi đang không phải cố gắng liên kết tĩnh một thư viện cụ thể, tôi đang cố tạo một tệp thực thi mà không sử dụng liên kết động tại tất cả. Tôi có các thử nghiệm sau (nếu không làm việc):Làm cách nào để tạo các tệp thi hành được liên kết tĩnh?
$ 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]
Lưu ý dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2
. Thay vào đó, các tệp thi hành tĩnh có statically linked
. (Và trong trường hợp của tôi corrupted section header size
, mặc dù tôi sẽ ngạc ngạc nhiên nếu tôi có thể thuyết phục Rust để tái tạo rằng.)
Những tùy chọn sao tôi cần phải vượt qua để rustc
để có được nó để tạo ra một thực thi tĩnh thực tế (ví concreteness : một thậm chí file
đồng ý được liên kết tĩnh).
Có lẽ C liên kết-args = '...' tùy chọn có thể giúp bạn? – llogiq
Lưu ý rằng câu hỏi của bạn chỉ liên quan đến Linux - AFAIK, [bạn không thể liên kết tĩnh các tệp thực thi trên OS X] (https://developer.apple.com/library/mac/qa/qa1118/_index.html). Tôi không chắc chắn về Windows. – Shepmaster
Bạn có thể muốn xem [sử dụng musl thay vì glibc wih rust] (https://github.com/rust-lang/rust/pull/24777) –