前情提要
- 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