我想从笔记本电脑上为树莓派编译一个Rust程序。我在pi上升级C版本时遇到问题,无法安装rust从那里编译它。
我按照this教程为rpi交叉编译了锈。我可以用这种方式编译简单程序,没有问题,但是我要编译的程序使用sqlite和openssl,这就是我遇到的问题。
我已经安装了lib32-dbus
,lib32-openssl
和lib32-sqlite
。进行export OPENSSL_LIB_DIR=/usr/lib32
和export OPENSSL_INCLUDE_DIR=/usr/include/openssl-1.0
修复了openssl,但是链接器仍然找不到sqlite lib的32位版本,并退出并显示此错误:
$ 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
env变量吗?如果没有,如何将链接器指向正确的版本?谢谢。
编辑:我现在下载并交叉编译用于arm linux的libsqlite3。现在,我只需要知道如何将链接器指向arm版本即可。
答案 0 :(得分:1)
您无法将Rust程序与OpenSSL的所有功能交叉编译,因为某些版本的OpenSSL不支持(以Vendored为特色),后者有助于交叉编译。因此,您可以使用支持此功能的OpenSSL版本,例如openssl = { version = "0.10", features = ["vendored"] }