Cross.toml 的 openssl 动态链接在运行时需要 libssl1.0.0,但它已不存在了

问题描述 投票:0回答:1

在我的项目中,我需要使用 openssl 不是为了我的应用程序的 HTTP 部分,而是因为我需要解码签名文件。

我添加到我的 Cargo.toml 中:

openssl = { version = "0.10.66", default-features = false }

以及 Cross.toml:

[target.aarch64-unknown-linux-gnu]
pre-build = [
    "dpkg --add-architecture $CROSS_DEB_ARCH",
    "apt-get update && apt-get install --assume-yes libssl-dev:$CROSS_DEB_ARCH",
]

当我启动 cross 时,它会构建,但是当

--release
可执行文件在安装了 openssl 的 Debian 12 计算机上运行时,错误是:

error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

为什么它绑定到

libssl.so.1.0.0
而不是最新版本?

机器上安装的openssl是:

openssl version -a
OpenSSL 3.0.14 4 Jun 2024 (Library: OpenSSL 3.0.14 4 Jun 2024)
built on: Sun Sep  1 14:59:10 2024 UTC
platform: debian-arm64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/aarch64-linux-gnu/engines-3"
MODULESDIR: "/usr/lib/aarch64-linux-gnu/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_armcap=0xbd

如果我使用 ldd 我会得到这个:

ldd executable
    linux-vdso.so.1 (0x0000ffffb51f0000)
    libssl.so.1.0.0 => not found
    libcrypto.so.1.0.0 => not found
    libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffb3fe0000)
    libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffb3fb0000)
    libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffb3f10000)
    libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffb3ee0000)
    libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffb3d30000)
    /lib/ld-linux-aarch64.so.1 (0x0000ffffb51b3000)
linux rust openssl cross-compiling rust-cross
1个回答
1
投票

我们的问题是,交叉用于我们的“aarch64-unknown-linux-gnu”目标的 docker 镜像已经过时了 - 维护者说他们很快就会更新它 - 请参阅 https://github.com /cross-rs/cross/issues/1567

同时我们可以尝试使用自定义图像,但遗憾的是我的尝试到目前为止失败了..

© www.soinside.com 2019 - 2024. All rights reserved.