交叉编译openssl1.1.1a

​ 交叉编译openssl1.1.1a的时候遇到的问题,记录一下,方便下次查找

一、下载源码

1.打开openssl官网,下载openssl-1.1.1.tar.gz源码包。

2.执行下面的命令解压源码包:

   $ tar xvzf openssl-1.1.1.tar.gz

二、配置openssl

1.执行下面的命令配置工程

   $ ./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=arm-linux-

其参数说明如下:

   no-asm:  在交叉编译过程中不使用汇编代码代码加速编译过程;

   shared: 生成动态连接库。

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

   –prefix=: 安装路径

   –cross-compile-prefix=: 交叉编译工具
  1. 打开Makefile,删除里面所有的-m64和-m32编译选项。

三、编译

1.执行make编译工程;

2.执行make install,在源文件路径会生成一个install文件。

自己编译的时候使用的交叉编译工具链有点特殊,是在每次编译前运行一个shell来设置编译所需的环境变量(CC、CXX、AR等),这个时候编译可能会出问题,需要修改Makefile,注释以下几行:

#CC=$(CROSS_COMPILE)gcc      #注释掉
#CXX=$(CROSS_COMPILE)g++    #注释掉
CPPFLAGS=
CFLAGS=-Wall -O3
CXXFLAGS=-Wall -O3
LDFLAGS= 
EX_LIBS= 

MAKEDEPEND=$(CROSS_COMPILE)gcc  #不确定是否一定要注释掉,验证后再来说明

PERL=/usr/bin/perl

#AR=$(CROSS_COMPILE)ar  #注释掉
ARFLAGS= r
RANLIB=$(CROSS_COMPILE)ranlib   #不确定是否一定要注释掉,验证后再来说明
RC= $(CROSS_COMPILE)windres     #不确定是否一定要注释掉,验证后再来说明
RCFLAGS= 

猜你喜欢

转载自www.cnblogs.com/ay-a/p/10889618.html