rust的開源庫地址https://github.com/housleyjk/ws-rs
其實當webscket客戶端使用https連接時,依賴的是rust的openssl庫,而rust的openssl(https://docs.rs/openssl/0.10.26/openssl/)需要使用到openssl動態庫,所以需要操作系統中安裝openssl(https://docs.rs/openssl/0.10.26/openssl/ 也介紹了各個系統上如何安裝openssl,如下:)
The openssl-sys crate will automatically detect OpenSSL installations via Homebrew on macOS and vcpkg on Windows. Additionally, it will use pkg-config on Unix-like systems to find the system installation.
# macOS
$ brew install [email protected]
# Arch Linux
$ sudo pacman -S pkg-config openssl
# Debian and Ubuntu
$ sudo apt-get install pkg-config libssl-dev
# Fedora
$ sudo dnf install pkg-config openssl-devel
windows下使用vcpkg,而vcpkg默認安裝的庫版本爲x86,如果你的電腦是64位的,編譯時需要設置爲64位(windows 用vscode寫rust程序,運行後提示(exit code: 0xc000007b),搜索說這個代碼是依賴庫的問題,比如我的寫程序編譯的版本是64位的,但依賴openssl的動態庫卻是32位的dll,所以報這個錯)。
不明白爲什麼win10 64位系統編譯的程序是32位的,用vcpkg就編譯了openssl動態庫的64位版本和x86版本,結果還是報一樣的錯。
故,去centos7 64位系統下編譯。首先安裝openssl(參考這篇文章 https://blog.csdn.net/weixin_36104843/article/details/80238762)。
完成後,需要設置OPENSSL_DIR環境變量值(在上面安裝的目錄爲/usr/local/ssl)和OPENSSL_LIB_DIR(在上面安裝的目錄爲/usr/local/ssl/lib),發現運行後還是會提示找不到libssl.so.1,說明還是沒有找到動態庫。
故需要再設置環境變更
LD_LIBRARY_PATH。
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/ssl/lib
先寫到這,過幾天再完善。