本资源详细介绍了如何在不同操作系统环境下对OpenSSL 1.1.1g版本进行标准编译及交叉编译的方法,适用于开发者和安全研究人员。
在Linux环境下编译/交叉编译openssl-1.1.1g生成动态库和静态库的方法如下:
一、编译Linux版本
1. 将文件openssl-1.1.1g.tar.gz复制到/opt目录下。
2. 解压tar包:`tar -zxvf openssl-1.1.1g.tar.gz`
3. 创建一个名为build的目录用于存放生成的目标文件和库文件。
4. 运行配置命令,指定安装路径为 /opt/openssl-1.1.1g/linux_build: `./config --prefix=/opt/openssl-1.1.1g/linux_build`
5. 编译源代码:`make`
6. 安装编译好的库文件到之前设置的目录中:`make install`
二、交叉编译ARM版本
步骤与Linux版类似,但需要指定特定于目标平台(例如ARM)的工具链。
1. 将openssl-1.1.1g.tar.gz复制至/opt。
2. 解压tar包: `tar -zxvf openssl-1.1.1g.tar.gz`
3. 创建一个名为arm_build的新目录用于存放生成的目标文件和库文件。
4. 运行配置命令,指定安装路径为 /opt/openssl-1.1.1g/arm_build,并使用ARM的GCC编译器:`./config no-asm -shared --prefix=/opt/openssl-1.1.1g/arm_build CC=${绝对路径名}/arm-linux-gcc CXX=${绝对路径名}/arm-linux-g++`
5. 编译源代码: `make`
如果在交叉编译过程中遇到“-m64”错误,需要手动编辑Makefile文件并删除该选项。然后重新执行`make`。
完成之后安装生成的库:
1. 完成以上步骤后运行:`make install`
注意:使用的是gcc (GCC) 8.3.1 版本和 arm-linux-gcc 5.4.0版本进行编译。
最终,Linux版的库文件将被放置在linux_build目录下;而ARM版本的库则会被安装到arm_build目录中。