我尝试在 Linux 上使用 sqlite 为树莓派交叉编译一个简单的 rust 程序:
货运.toml
...
[dependencies]
rusqlite = { version = "0.26.3", features = ["bundled"] }
.货物/配置
[target.arm-unknown-linux-gnueabihf]
linker = "/opt/crosspi/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc"
当尝试使用cargo build --release --target=arm-unknown-linux-gnueabihf
rust 构建时,会出现链接器错误,该错误基本上说:
error: linking with `/opt/crosspi/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc` failed: exit status: 1
...
= note: /home/hannenz/pidev/projects/kiddyblaster/webui-rust/target/arm-unknown-linux-gnueabihf/release/deps/liblibsqlite3_sys-950993cbbcc1e3eb.rlib(sqlite3.o):(.data.rel.aSyscall+0x58): undefined reference to `fcntl64'
collect2: error: ld returned 1 exit status
(这...
是完整的 gcc 命令行,如果相关,我可以发布整个输出)
如果没有 rusqlite 交叉编译工作,并且为主机目标编译也可以工作。我也尝试了sqlite
crate 而不是rusqlite
,但这会产生完全相同的链接器错误。
如果有人能指出我正确的方向,我会很高兴这里出了什么问题。