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/opens..
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 openssl@1.1
# 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
先写到这,过几天再完善。
更多推荐
所有评论(0)