./a.out만이 아니라 .dylib, .so도 함께 — Rust 분리 빌드
Rust 워크스페이스에서 prefer-dynamic = true를 설정하면 릴리즈 빌드 시 동적 라이브러리 링킹을 활용할 수 있다. 빌드 속도와 바이너리 크기 최적화에 유용하다.
WorkSpace Cargo.toml
WorkSpace
[workspace]
# authors: KuuwangE <root@ql.gl>
# author repo https://github.com/shellcodesniper
resolver = "2"
members = [
"entry", # NOTE : Entry point
]
default-members = [
"entry",
]
[profile.dev]
prefer-dynamic = false # NOTE : Prefer dynamic linking
opt-level = 0
debug = true
[profile.release]
prefer-dynamic = true # NOTE : Prefer dynamic linking
opt-level = 3
debug = false
lto = true
# split-debuginfo = "unpacked"
-> Result Will be

Prevent "Could not found libstd-~~~.so"
ADD THIS to binary module Cargo.toml
[dependencies]
prefer-dynamic = "0"
[dev-dependencies]
prefer-dynamic = { version = "0", features = ["link-test"] }
But... If Error Still Occurs,
Try this
MAC OS X
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD"
sudo ldconfig
./a.out
LINUX
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$PWD"
./a.out