前情提要
- openssl和gmssl如果想要共存,只能一个是动态库,一个是静态库
- 配置openssl和gmssl无特定的编译顺序要求
- openssl3.x版本是未来趋势,openssl1.1.x等版本只是适用于基础软件包,后期将会删除
- 配置文件
- /etc/ld.so.conf文件只用于配置动态库,一般最好不用动他
- 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
- 例子说明:
- echo "/usr/local/lib" >> ld.so.conf //将openssl的安装路径加入配置中
- ldconfig //重新加载配置
- bashrc只针对当前用户,一般也不采取这种方式
- /etc/profile 对此文件的修改和配置对任何用户均生效,一般采用此种方式
- ubuntu一般使用 # 作为注释
- 使用配置文件之后,就不需要使用软连接实现可执行文件的调用
下载编译Opensll和Gmssl
- 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
- Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本_MY CUP OF TEA的博客-CSDN博客_ubuntu安装gmssl
通用模板
- sudo ./config --prefix=/usr/local/XXX --openssldir=/usr/local/XXX
- 注意事项:删除no-shared,其用于生成静态库
- sudo make
- sudo make install
变量说明
openssl
gmssl
配置路径
- openssl和gmssl不可以共存,使用时需要使用 # 进行注释,实现动态切换
- 切换后 使用命令 source /etc/profile实现动态切换
- openssl比较特殊,因为当前已经存在了openssl1.1.1版本,如果注释掉gmssl,开启openssl,使用openssl version显示的是openssl1.1.1版本,而不是用户自己编译安装的openssl3.0.4,解决办法如下,删除旧有的链接,重新创建新的软连接
- sudo mv /usr/bin/openssl /usr/bin/openssl.old //将旧版本的openssl进行备份
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl //将新版本的openssl进行软链接
- 配置文件只需要制定bin(可执行文件)和lib(动态库),不需要指定头文件,头文件在编译器内部指定(CMakeLists.txt)
- 参考链接 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
- 例子
- # 指定头文件搜索策略
- include_directories(/usr/local/gmssl/include)
## openssl和gmssl 动态库不能同时使用,需要注释其中一个,且使用 source /etc/profile 更新配置文件
## gmssl env
export PATH=$PATH:/usr/local/gmssl/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmssl/lib## openssl env
# export PATH=$PATH:/usr/local/openssl/bin
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib64