Ubuntu x86-64下交叉编译OpenSSL至ARM/AARCH64/i686遇命令错误求助
正确的OpenSSL交叉编译命令及问题修复
核心问题修复点
- 交叉编译必须用
./Configure而非./config:./config会自动添加主机(x86-64)专属编译选项(如-m64),导致交叉编译冲突。 - 移除
--cross-compiler-prefix中的多余反斜杠\:该符号会导致前缀解析错误。 - 指定匹配目标平台:编译AARCH64不能用
linux-generic64,需使用OpenSSL内置的对应平台标识。
各平台正确编译命令
AARCH64 平台
./Configure linux-aarch64 shared --cross-compiler-prefix="aarch64-ubuntu-linux-gnu-" -g -gdwarf-4 -O3
ARM 32位平台(以armhf为例)
根据实际ARM架构版本选择目标(如linux-armv7):
./Configure linux-armv7 shared --cross-compiler-prefix="arm-linux-gnueabihf-" -g -gdwarf-4 -O3
i686 平台
./Configure linux-elf shared --cross-compiler-prefix="i686-linux-gnu-" -g -gdwarf-4 -O3
额外配置说明
- 若需指定clang作为编译器,可在命令前设置环境变量:
CC=clang ./Configure linux-aarch64 shared --cross-compiler-prefix="aarch64-ubuntu-linux-gnu-" -g -gdwarf-4 -O3 - 编译前确保已安装对应架构的交叉编译工具链(如
aarch64-ubuntu-linux-gnu-gcc、i686-linux-gnu-gcc)。 - 如需更精细的架构优化,可执行
./Configure --help查看所有支持的目标平台参数。
内容的提问来源于stack exchange,提问作者Hashem HZ
相关产品推荐
相关产品推荐

