如何为aarch64-unknown-linux-gnu交叉编译GDAL?

问题描述 投票:0回答:1

我需要在 ZCU106 开发套件上运行一个板条箱,该板条箱取决于 GDAL Rust 板条箱。这需要我为目标交叉编译代码:

aarch64-unknown-linux-gnu
。该板条箱可以很好地针对 x86_64 架构进行编译,但是在针对给定目标进行编译时,它找不到所需的头文件并抛出错误消息:

wrapper.h:5:10: fatal error: 'cpl_atomic_ops.h' file not found
thread 'main' panicked at /home/arya/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gdal-sys-0.9.1/build.rs:37:10:
Unable to generate bindings: ClangDiagnostic("wrapper.h:5:10: fatal error: 'cpl_atomic_ops.h' file not found\n")

我使用的是Ubuntu 22.04系统。我位于板条箱根目录内的

.cargo/config
文件的内容是:

[target.aarch64-unknown-linux-gnu]
linker="aarch64-linux-gnu-gcc"

我已经验证头文件确实位于

/usr/include/gdal
内部,这让我认为这是一个路径问题,可以通过指定适当的环境变量来解决。但是,我不确定要设置什么。

打印

env
也没有产生任何我可以设置的相关变量。

我不是将其编译为独立的,而是作为我的 Rust 箱的一部分。因此,单独编译 GDAL 源代码是行不通的,它是通过 Rust 包装器在板条箱中使用的。我该如何解决这个问题?

rust cross-compiling gdal arm64
1个回答
0
投票

GDAL_INCLUDE_DIR
环境变量设置为
/usr/include/gdal
。这应该使构建脚本看起来在那里。

© www.soinside.com 2019 - 2024. All rights reserved.