我想从我的笔记本电脑为树莓派编译一个Rust程序。我在升级树莓派上的C版本时遇到了问题,无法安装Rust以从那里进行编译。
我按照this的教程进行交叉编译Rust来支持树莓派。这种方法可以顺利编译简单的程序,但我想要编译的程序使用了sqlite和openssl,这就是我遇到问题的地方。
我已经安装了
我按照this的教程进行交叉编译Rust来支持树莓派。这种方法可以顺利编译简单的程序,但我想要编译的程序使用了sqlite和openssl,这就是我遇到问题的地方。
我已经安装了
lib32-dbus
、lib32-openssl
和lib32-sqlite
。执行export OPENSSL_LIB_DIR=/usr/lib32
和export 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
完整错误信息请点击这里。
是否存在可以设置的SQLITE_LIB_DIR
环境变量?如果没有,我该如何将链接器指向正确的版本?谢谢。
编辑:我已经下载并交叉编译了适用于 ARM Linux 的 libsqlite3 库。现在我只需要知道如何将链接器指向 ARM 版本即可。
--sysroot
来指定链接器。C编译器会为您调用链接器。sysroot
包含了目标所需的所有头文件和库。我知道Rust重新发明了轮子。不确定如何在Rust中实现相同的功能。当我尝试为ARM Rust构建新的Firefox Geckodriver时,Rust和Cargo破坏了构建过程。祝你好运。 - jww