跨平台编译基于Aya的程序
以下说明展示了如何在Mac上跨平台编译Aya eBPF程序。 在其他系统上进行跨平台编译也是可行的,我们将很快添加相应的说明(欢迎提交PR!)。
在Mac上跨平台编译基于Aya的程序
跨平台编译在Intel和Apple Silicon Mac上都应该可以工作。
- 根据https://rustup.rs/上的说明安装
rustup。 - 安装稳定版和夜间版的Rust工具链:
- 为您的Linux目标平台安装rustup target:
- 使用brew安装LLVM:
-
安装musl交叉编译器:
仅为
仅为x86_64目标进行跨编译(musl-cross中的默认设置):aarch64目标进行跨编译: 为x86_64和aarch64目标进行跨编译: 有关其他平台特定选项,请参见homebrew-musl-cross。 -
安装bpf-linker。将
LLVM_SYS_<version>_PREFIX中的版本号更改为对应于llvm-sys crate的主版本号:
RUSTFLAGS="-Clinker=${ARCH}-linux-musl-ld" cargo build --release --target=${ARCH}-unknown-linux-musl
target/${ARCH}-unknown-linux-musl/release/<program_name>可以复制到Linux服务器或虚拟机上运行。