一、下载openssl源码
二、交叉编译
1、解压
tar -xzvf openssl-3.0.1.tar.gz
2、配置交叉编译
以联咏NT98331平台为例
no-asm 关于汇编的模块不进行编译
shared 编译成动态链接库
no-async 不编译异步相关函数
–prefix 指定编译结果目录即安装目录
–cross-compile-prefix 指定交叉编译器及其路径,下面是交叉编译器已经再环境变量申明
CC 配置编译器
./Configure no-asm shared no-async --prefix=/home/liyongli/SVN/openssl331 --cross-compile-prefix=arm-ca53-linux-uclibcgnueabihf-novatek-8.4- CC=gcc
配置完成
打开Makefile,删除 -m64
有些编译器问题可能无法编译64位,且去除 -m64也不行只能修改源码。在include\openssl\bn.h该文件中修改
# ifdef SIXTY_FOUR_BIT_LONG
# define BN_ULONG unsigned long
# define BN_BYTES 8
# endif
/*
* 64-bit processor other than LP64 ABI
*/
# ifdef SIXTY_FOUR_BIT
# define BN_ULONG unsigned long long
# define BN_BYTES 8
# endif
/*MN63 平台编译器需要锁定位32位
#undef SIXTY_FOUR_BIT
#undef SIXTY_FOUR_BIT_LONG
#define THIRTY_TWO_BIT
*/
# ifdef THIRTY_TWO_BIT
# define BN_ULONG unsigned int
# define BN_BYTES 4
# endif
# define BN_BITS2 (BN_BYTES * 8)
# define BN_BITS (BN_BITS2 * 2)
# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1))
# define BN_FLG_MALLOCED 0x01
# define BN_FLG_STATIC_DATA 0x02
先后执行make 和 make install即可完成编译
make
make install