gpt4 book ai didi

linux - 从 64 位 arch linux 为树莓派 `armv7-unknown-linux-gnueabihf` 编译 Rust 程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:19 24 4
gpt4 key购买 nike

我想从我的笔记本电脑为我的树莓派编译一个 Rust 程序。我在 pi 上升级 C 版本时遇到问题,无法安装 rust 以从那里编译它。

我关注了this为 rpi 交叉编译 rust 的教程。我可以用这种方式毫无问题地编译简单的程序,但是我要编译的程序使用 sqlite 和 openssl,这就是我遇到问题的地方。

我已经安装了 lib32-dbuslib32-openssllib32-sqlite。执行 export OPENSSL_LIB_DIR=/usr/lib32export OPENSSL_INCLUDE_DIR=/usr/include/openssl-1.0 修复了 openssl,但链接器仍然找不到 32 位版本的sqlite 库并退出并出现此错误:

$ PKG_CONFIG_ALLOW_CROSS=1 cargo build --target armv7-unknown-linux-gnueabihf

...

note: /usr/lib/libsqlite3.so: file not recognized: file format not recognized

完整错误 here .

是否有某种我可以设置的 SQLITE_LIB_DIR 环境变量?如果不是,我如何将链接器指向正确的版本?谢谢。

编辑:我现在已经为 arm linux 下载并交叉编译了 libsqlite3。现在我只需要知道如何将链接器指向 arm 版本。

最佳答案

您不能使用 OpenSSL 的每个功能交叉编译 Rust 程序,因为某些版本的 OpenSSL 不支持(功能为 Vendored),这有助于交叉编译。因此,您可以使用支持此功能的 OpenSSL 版本,例如 openssl = { version = "0.10", features = ["vendored"] }

关于linux - 从 64 位 arch linux 为树莓派 `armv7-unknown-linux-gnueabihf` 编译 Rust 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56135580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com