【交叉编译一】openssl-1.1.1编译

君正平台

1、源码包下载

https://www.openssl.org/source/old/1.1.1/

https://www.openssl.org/source/下载openssl-1.1.1源代码

2、进入目录

# tar zxvf openssl-1.1.1.tar.gz  
# cd openssl-1.1.1

3、执行

./config no-asm no-sse2 no-ssl3 no-zlib no-bf no-camellia no-cast no-cms no-comp no-dso no-idea  no-md2 no-mdc2 no-rc2 no-rc5 no-ripemd no-seed --prefix=$(pwd)/ISVP -fPIC --cross-compile-prefix=/opt/mips-gcc472-glibc216-64bit/bin/mips-linux-uclibc-gnu-

    参数说明:

    no-asm:    在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的。
    no-async: 交叉编译工具链没有提供GNU C的ucontext库
    –prefix=: 安装路径,编译完成install后将有bin,lib,include等文件夹
    –cross-compile-prefix=: 交叉编译工具 

4、make

此时会有一个【报错】:

mips-linux-gnu-gcc: error: unrecognized command line option '-m64'

解决办法,我们打开makefile

搜索-m64选项并删除,共两处

NF_CFLAGS=-pthread -m64

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

再一次执行make后

【报错】如下:

./libcrypto.so: undefined reference to `getcontext'
./libcrypto.so: undefined reference to `setcontext'
./libcrypto.so: undefined reference to `makecontext'
collect2: error: ld returned 1 exit status

 

主要原因是:mipsel-linux没有提供GNU C的ucontext库

解决办法:config 配置时添加 no-async

./config no-asm no-async no-sse2 no-ssl3 no-zlib no-async no-bf no-camellia no-cast no-cms no-comp no-dso no-idea  no-md2 no-mdc2 no-rc2 no-rc5 no-ripemd no-seed --prefix=$(pwd)/ISVP -fPIC --cross-compile-prefix=/opt/mips-gcc472-glibc216-64bit/bin/mips-linux-uclibc-gnu-

5.make && make install

6.编译成功

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值