rust使用websocket,使用開源庫ws

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

先寫到這,過幾天再完善。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章