一、下载源码
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=: 交叉编译工具
2.打开Makefile,删除里面所有的-m64和-m32编译选项。
三、编译openssl
1.执行make编译工程;
2.执行make install,在源文件路径会生成一个install文件。
四、移植到开发板
拷贝libcrypto.so.1.1 和 libssl.so.1.1到开发板文件系统的/usr/lib/目录。
五、常见问题
1. error: unrecognized command line option '-m64'
原因:Makefile中有-m64和-m32编译选项
解决方法:打开Makefile,删除里面所有的-m64和-m32编译选项。
2. ./libcrypto.so: undefined reference to 'getcontext'
./libcrypto.so: undefined reference to 'setcontext'
./libcrypto.so: undefined reference to 'makecontext'
原因:执行 ./config 时没有添加 no-async 参数
解决方法:执行 make clean,然后执行./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=arm-linux-,重新编译即可。