V 社《半條命 2》更新:適配 Steam Deck 掌機,支援超寬屏顯示器
阿新 • • 發佈:2021-10-23
Openeuler中OpenSSL的安裝
20191318王澤文
參考連結https://www.cnblogs.com/rocedu/p/5087623.html進行OpenSSL的安裝。
從官網下載最新版OpenSSL,這裡下載的是openssl-3.0.0.tar.gz 。
使用tar
解壓原始碼。
tar xzvf openssl-1.1.0-pre1.tar.gz
進入到OpenSSL的資料夾中。
然後使用下列命令編譯安裝:
./Configure
make
sudo make install
使用make test
測試沒有問題。
使用參考連結中的程式碼進行測試:
測試程式碼test_openssl.c:
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
然後用下面命令編譯:
gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread
報錯
檢視程式碼中OpenSSL_add_all_algorithms()
所在標頭檔案evp.h
中的定義發現OPENSSL_init_crypto
OPENSSL_init_crypto
所在檔案crypto.h
和evp.h
都位於/usr/local/include/openssl
而不是/usr/local/ssl/inlcude
接著,我們使用修改後的命令編譯gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread
依舊報同樣錯誤。
這時,發現所用的lib庫不存在
通過查詢安裝資訊,發現lib安裝在/usr/local/lib64
中,為crypto的庫
重新編譯、
gcc -o to test_openssl.c -I /usr/local/include/openssl -L /usr/local/lib64 -lcrypto -lpthread
執行
./to;echo $?
發現報錯
通過查詢lib64發現確實沒有libcrypto.so.3檔案,但有libcrypto.so.1.1檔案,這時可以通過兩種方法解決。
- 直接使用系統自帶的舊版本的libcrypto.so.1.1檔案編譯
gcc -o to test_openssl.c -I /usr/local/include/openssl /usr/lib64/libcrypto.so.1.1 -lpthread
- 在解壓的OpenSSL-3.0資料夾中,可以發現有libcrypto.so.3檔案,可以通過將其放入lib64中解決。
cp /wzw/openssl-3.0.0/libcrypto.so.3 /usr/lib64/libcrypto.so.3