use*_*160 5 debian gcc cross-compilation
我正在尝试在我的 AMD64 Ubuntu 操作系统上为 ARM64 平台构建一个 debian 包。我执行命令
debuild -us -uc --host-arch arm64
Run Code Online (Sandbox Code Playgroud)
但得到警告
dpkg-architecture: warning: specified GNU system type aarch64-linux-gnu does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable
Run Code Online (Sandbox Code Playgroud)
所以想知道如何设置 CC 环境变量,正如警告所建议的那样。对于我的目标操作系统,我通常会使用
/opt/l4t-gcc-toolchain-64-bit-32.1/install/bin/aarch64-linux-gnu-gcc
Run Code Online (Sandbox Code Playgroud)
谢谢。
我不确定从长远来看缺少什么,因为OP没有提到任何关于它的目标包的信息,无论如何检查我这边的解决方案。很高兴听到您对类似案例的反馈。
该消息是关于 C 编译器 (CC) 环境变量对于所请求的目标体系结构不方便。尝试dpkg-cross一下可以帮助您设置所有 ENV 变量。
debuild是一个使用的助手dpkg-buildpackage
安装dpkg-cross包
sudo apt install dpkg-cross build-essential
Run Code Online (Sandbox Code Playgroud)
在构建之前设置交叉编译配置变量和帮助标志
set CONFIG_SITE=/etc/dpkg-cross/cross-config.arm64
set DEB_BUILD_OPTIONS=nocheck
Run Code Online (Sandbox Code Playgroud)
尝试再次构建它
如果不起作用,请尝试debuild传递dpkg-buildpackage. 所有步骤都记录在Debian Wiki: Building with dpkg-buildpackage中。
笔记:
如果您正在构建自己的软件包,那么最好阅读如何使您的软件包 Debian 交叉编译友好:交叉构建友好软件包的指南