libwebsockets安装过程及错误解决记录

centos7 安装命令:yum
ubuntu 安装命令:apt-get


一、安装必要依赖
1. yum -y install cmake
2. yum -y install openssl
3. yum -y install openssl-devel  (ubuntu系统对应的是libssl-dev)
4. 编译安装libuv库,教程:https://blog.csdn.net/weixin_30399871/article/details/99906734

二、下载源码
下载:https://github.com/warmcat/libwebsockets.git

打开 ./libwebsockets-master/CMakeLists.txt文件, 并找到下面两项: 
----------------------------------------------------------------------------------------------------------------------------------------
option(LWS_WITH_PLUGINS "Support plugins for protocols and extensions" OFF)   // 把OFF改成ON

option(LWS_WITHOUT_EXTENSIONS "Don't compile with extensions" ON)              // 把ON改成OFF

option(DISABLE_WERROR "Avoid treating compiler warnings as fatal errors" OFF)   // 把OFF改为ON
----------------------------------------------------------------------------------------------------------------------------------------

三、cmake编译安装
#cd libwebsockets
#mkdir build
#cd build
#cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
#make
#make install

四、测试
安装完成后,开启服务端:
[root@localhost build]# cd bin
[root@localhost bin]# ls
libwebsockets-test-client  libwebsockets-test-lejp  libwebsockets-test-server  libwebsockets-test-server-extpoll
[root@localhost bin]# ./libwebsockets-test-server
[2021/01/12 06:15:28:2035] N: libwebsockets test server - license MIT
[2021/01/12 06:15:28:2039] N: (C) Copyright 2010-2018 Andy Green <andy@warmcat.com>
Using resource path "/usr/local/share/libwebsockets-test-server"
[2021/01/12 06:15:28:2040] N: LWS: 4.1.99-, loglevel 1031
[2021/01/12 06:15:28:2040] N: NET CLI SRV H1 H2 WS IPv6-absent

先关闭防火墙:
[root@localhost bin]# systemctl stop firewalld.service

客户端连接服务端:
[root@localhost build]# cd bin
[root@localhost bin]# ./libwebsockets-test-client 127.0.0.1 7681
[2021/01/12 06:19:20:8506] N: libwebsockets test client - license MIT
[2021/01/12 06:19:20:8510] N: (C) Copyright 2010-2018 Andy Green <andy@warmcat.com>
[2021/01/12 06:19:20:8511] N:  SSL disabled
[2021/01/12 06:19:20:8511] N:  Cert must validate correctly (use -s to allow selfsigned)
[2021/01/12 06:19:20:8511] N:  Requiring peer cert hostname matches
[2021/01/12 06:19:20:8511] N: LWS: 4.1.99-, loglevel 7
[2021/01/12 06:19:20:8512] N: NET CLI SRV H1 H2 WS IPv6-absent
[2021/01/12 06:19:20:9060] N: using  mode (ws)
[2021/01/12 06:19:20:9060] N: dumb: connecting
[2021/01/12 06:19:20:9062] N: lws_sort_dns_dump: 1: (2)127.0.0.1, gw (0), idi: 0, lbl: 0, prec: 0
[2021/01/12 06:19:20:9117] N: mirror: connecting
[2021/01/12 06:19:20:9119] N: lws_sort_dns_dump: 1: (2)127.0.0.1, gw (0), idi: 0, lbl: 0, prec: 0
[2021/01/12 06:19:20:9185] N: lws_http_client_http_response 101
[2021/01/12 06:19:20:9189] N: mirror: LWS_CALLBACK_CLIENT_ESTABLISHED
[2021/01/12 06:19:20:9190] N: opened mirror connection with 50093 lifetime

使用curl连接http服务端:
[root@localhost bin]# curl http://127.0.0.1:7681
测试连接成功....


【常见错误及解决办法】
错误:’size_t’转换自‘int’时可能会改变结果的符号
原因:CMakeLists.txt开启了warrings告警,即编译器将警告默认为错误。
解决:打开CMakeLists.txt, 找到参数 option(DISABLE_WERROR)修改 为 ON


错误:error while loading shared libraries: libwebsockets.so.17: cannot open shared object file: No such file or directory
原因:lib 库路径没有加入环境变量
解决:vi /etc/ld.so.conf
         将需要添加的 lib 绝对路径添加在文件末尾
         保存退出,执行命令 ldconfig


错误:undefined reference to `lws_extension_callback_pm_deflate'
原因:官方issuses有解释,https://github.com/meetecho/janus-gateway/issues/2476
解决:cmake添加如下参数即可

cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值