1

我尝试在 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-gnueabihfrust 构建时,会出现链接器错误,该错误基本上说:

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 交叉编译工作,并且为主机目标编译也可以工作。我也尝试了sqlitecrate 而不是rusqlite,但这会产生完全相同的链接器错误。

如果有人能指出我正确的方向,我会很高兴这里出了什么问题。

4

0 回答 0