我可以使用
cargo run --release
毫无问题地编译和运行我的 Rust 项目。第二步,我只想使用 cargo build --release
创建二进制文件,然后通过运行 ./target/release/crate_name
来执行它(也有解释 here)。执行二进制文件会导致找不到某些共享库的行为。这是我的Cargo.toml
:
[package]
name = "onnx-test"
version = "0.1.0"
edition = "2023"
[dependencies]
actix-web = "4"
futures = "0.3.26"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
onnxruntime = "0.0.14"
image = "0.24.5"
imageproc = "0.23.0"
rusttype = "0.9.3"
lazy_static = "1.4.0"
base64 = "0.21.0"
actix-cors = "0.6.4"
derive_more = "0.99.17"
actix-web-validator = "5.0.1"
validator = { version = "0.16", features = ["derive"] }
regex = "1.5.6"
这是错误消息:
error while loading shared libraries: libonnxruntime.so.1.8.1: cannot open shared object file: No such file or directory
所以我的问题是,
cargo run --release
隐式链接一些库吗?我的意思是该库存在于 target/release/build/...
路径中的某个位置。我没有通过提供 --verbose
标志发现任何信息。
以下是
target/release
的内容:
build/
deps/
examples/
incremental/
onnx-test
onnx-test.d