下载源码
去官网下载源码
openssl官网
下载下来的代码进行解压,我这里下载的是1.1.1m,目录结构如下
结构介绍
crypto里面是所有的算法
app是openssl命令行等的程序
ssl是安全套接字相关的代码
INSTALL是编译安装相关说明,比如安装在哪里,如果是交叉编译如何配置,读这个文档就可以了。
如果还要看其他平台相关的,看下面的NOTES.ANDROID,NOTES.WIN,NOTES.UNIX等等文件
最简单的编译,windows/linux
Quick Start
-----------
If you want to just get on with it, do:
on Unix (again, this includes Mac OS/X):
$ ./config
$ make
$ make test
$ make install
on OpenVMS:
$ @config
$ mms
$ mms test
$ mms install
on Windows (only pick one of the targets for configuration):
$ perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }
$ nmake
$ nmake test
$ nmake install
调试选项
要编译出可调试版本增加
–debug
编译android版本
编译android版本由于是交叉编译需要用Configure
- 配置ndk目录 ANDROID_NDK_HOME=你的ndk目录
- 选择一个目标机器的架构,比如android-arm64
- ndk支持多个api级别,你可以选一个(默认是最高的),比如29,可以这样配置-D__ANDROID_API__=29
- 导出工具链路径
目标机器的名字选项
android-arm, android-arm64, android-mips, android-mip64, android-x86
and android-x86_64
编译器使用clang的
export ANDROID_NDK_HOME=/home/whoever/Android/android-sdk/ndk/20.0.5594570
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
./Configure android-arm64 -D__ANDROID_API__=29
make
编译器使用gcc的(ndk19及一下)
export ANDROID_NDK_HOME=/some/where/android-ndk-10d
PATH=$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH
./Configure android-arm -D__ANDROID_API__=14
make
```