Ubuntu18.04 交叉编译openssl和openssh

2023-06-11  本文已影响0人  不合格码农

如何在X86设备编译ARM架构的openssl和openssh

参考:

    https://blog.csdn.net/qq_28117531/article/details/117512559

    https://blog.csdn.net/m0_49857167/article/details/128381931

1.交叉编译zlib

    zlib-1.2.13.tar.gz                  https://www.zlib.net/

    此处操作步骤有问题,不做说明

    环境是没有gcc的Ubuntu的18.04的虚拟机,作者直接 cp aarch64-linux-gnu-gcc-6.2.1 gcc

    tar xvf zlib-1.2.13.tar.gz

    cd zlib-1.2.13

    make -p /usr/local/zlib

    ./configure --prefix=/usr/local/zlib/

    make && make install -j8

2.交叉编译openssl

(1)下载源码包

openssl: openssl-1.1.1u.tar.gz           https://www.openssl.org/source/

(2)上传至虚拟机,并进行解压,随后进入目录

        tar xvf openssl-1.1.1u.tar.gz 

        cd openssl-1.1.1u

(3)创建编译输出结果的目录

        mkdir -p /usr/local/openssl

(4)执行配置文件,命令如下:

        ./config no-asm shared no-async --prefix=/usr/local/openssl --cross-comple-prefix=aarch64-linux-gnu-

        参数说明:

                no-asm:在交叉编译过程中,不使用汇编代码代码加速编译过程,原因是他的汇编代码是对arm格式不支持的

                share:生成动态连接库

                no-async:交叉编译工具链没有提供GNC C的ucontext库

                --prefix=:安装路径,编译完成install后,将有bin,lib,inlude等文件夹

                -cross-compile-prefix=:交叉编译工具

    修改Makefile文件

    注释:

            # CNF_CFLAGS=pthread -m64

            # CNF_CXXFLAGS=-std=c++11 -pthread -m64

    make && mak install -j8

3.交叉编译openssh   

(1)下载源码包

openssh-9.2p1.tar.gz           http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

(2)上传至虚拟机,并进行解压,随后进入目录

        tar xvf openssh-9.2p1.tar.gz 

        cd openssh-9.2p1

(3)交叉编译

        ./configure --host=arm-linux-gnueabihf --with-lib --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --disable-etc-default-login CC=aarch64-linux-gnu-gcc-6.2.1 AR=aarch64-linux-gnu-gcc-ar

        参数说明:

        --host:表示主机架构,这里选择arm

        --with-zlib:表示指定先前编译的zlib库的存放路径

        --with-ssl-dir:表示上面交叉编译的openssl库的存放路径

        CC:指定交叉编译器

        AR:指定库管理器

            make -j8

            编译完成,当前路径下的ssh,即是需要的arm的ssh

上一篇 下一篇

猜你喜欢

热点阅读