美文网首页
Ubuntu18.04 交叉编译openssl和openssh

Ubuntu18.04 交叉编译openssl和openssh

作者: 不合格码农 | 来源:发表于2023-06-11 14:48 被阅读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

    相关文章

      网友评论

          本文标题:Ubuntu18.04 交叉编译openssl和openssh

          本文链接:https://www.haomeiwen.com/subject/wcnxydtx.html