源码编译
源码准备
# clone master 分支代码
git clone https://github.com/Tongsuo-Project/Tongsuo.git
配置选项
- enable-xx:编译 xx 算法、协议或者功能,比如 enable-ntls 表示编译国密功能,enable-sm2 表示编译 sm2 算法
- no-xx:不编译 xx 算法、协议或者功能,比如 no-ntls 表示不编译国密功能,no-sm2 表示不编译 sm2 算法
- --prefix=DIR:指定 openssl 的安装目录,如果只是想生成库文件,没有必要执行 make install 命令,也就可以不用指定该选项,默认值:/usr/local
- --openssldir=DIR:指定 openssl 配置文件的安装目录,如果不指定,默认安装到 --prefix 指定目录下的 ssl 目录
- --cross-compile-prefix=PREFIX:指定交叉编译工具链,以连接号结束,比如 arm-linux-gnueabihf-
- --symbol-prefix=PREFIX:指定导出符号前缀,在多个 openssl 版本库共存的场景中用到,详细移步教程:Tongsuo(原 BabaSSL) 与其他 openssl 版本库共存方案
- --api=x.y.z:x.y.z 为 API 版本号,是下列值之一:0.9.8, 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.1.1, 3.0,默认值:3.0,如果要编译与 openssl-1.1.1 兼容的 API,需要指定--api=1.1.1.
- -Wl,-rpath,/opt/tongsuo/lib:rpath 指定编译出的 openssl 二进制程序依赖的 libcrypto.so 和 libssl.so 目录,效果与
LD_LIBRARY_PATH和DYLD_LIBRARY_PATH环境变量一样 - --debug:如果需要 gdb 或者 lldb 调试需要加这个选项