OpenSSL交叉编译

OpenSSL交叉编译

以 x86_64 上交叉编译 loongarch64 为例:

  1. 先下载 OpenSSL 源码:Downloads | OpenSSL Library

  2. 安装 perl

  3. 下载交叉编译工具链

  4. 进入源码目录,交叉编译:

    # 1. 先查看openssl是否有专门为你交叉编译目标平台的适配
    ./Configure --help 2>&1 | grep loong
    # 发现有,叫做 linux64-loongarch64
    
    # 2. 指定交叉编译平台,以及工具链前缀。生成makefile。可能需要手动修改makefile
    perl Configure linux64-loongarch64 --prefix=/abspath/to/save/artifacts --openssldir=/abspath/to/save/configs no-shared no-tls1 no-tls1_1 no-dtls no-dtls1 no-dtls1_2 no-legacy no-comp no-tests no-docs no-apps no-ui-console "BUILD_ONLY=libcrypto libssl" -fPIC --libdir=lib --cross-compile-prefix=loongarch64-unknown-gnu-
    
    # 3. 交叉编译
    make -j`nproc`
    make install
    

备注:

  • 如果 ./Configure --help 没有找到专用的适配,则可以选择诸如 linux-generic32/64 这种。
  • 可能需要手动修改makefile中的 CFLAGS/CXXFLAGS 等。
  • 如果遇到编译器不认识的汇编指令(多出现在过旧的工具链、非专门适配的平台),则可以开启 no-asm 禁用内联汇编。有时可以借助编译器来排查是否支持对应的CPU特性,如 clang -dM -E -mavx2 - < /dev/null | grep AVX2 可以用于检查编译器是否支持 AVX2 汇编指令。
posted @ 2026-06-16 21:07  3的4次方  阅读(4)  评论(0)    收藏  举报