linux c websocket开源库libwebsockets的编译和使用

我在编译过程中出现了本文步骤4.1和4.2所解决的两个问题, 如果你也出现了相同的问题, 请根据4.1和4.2解决, 如果没有出现, 请略过步骤4. 现步骤如下:

步骤1) 下载解压, github地址如下:

https://github.com/warmcat/libwebsockets

步骤2) 假如解压后的目录如此: /home/user/libwebsockets-master, 请按如下步执行命令行操作: 

cd /home/user/libwebsockets-master

mkdir build

cd build

cmake .. 

make -j8

sudo make install

步骤3) 现在进入测试目录编译测试文件, 已echo为例, 请按如下步骤执行命令行操作:

cd /home/user/libwebsockets-master/minimal-examples/ws-server/minimal-ws-server-echo

gcc minimal-ws-server-echo.c protocol_lws_minimal_server_echo.c -o minimal-ws-server-echo -lwebsockets

如果万事大吉, 请略过<步骤4>, 直接看<步骤5>

而如果出现以下错误, 请根据<步骤4.1>解决

protocol_lws_minimal_server_echo.c:246:7: error: dereferencing pointer to incomplete type
if (c->api_magic != LWS_PLUGIN_API_MAGIC) {
protocol_lws_minimal_server_echo.c:246:22: error: ‘LWS_PLUGIN_API_MAGIC’ undeclared (first use in this function)
if (c->api_magic != LWS_PLUGIN_API_MAGIC) {

......

步骤4) 解决方法:

    请注意请注意, 需要已经配置了libuv环境. 如果没有配置, 自己配置下, 还是很简单的. 

    4.1) 打开/home/user/libwebsockets-master/CMakeLists.txt文件, 并找到此项: 

option(LWS_WITH_PLUGINS "Support plugins for protocols and extensions" OFF)

    把OFF改成ON, 再根据<步骤2>再次编译libwebsockets, 然后再根据<步骤3>再接着编译测试文件

    如果编译成功, 请直接看<步骤5>, 而如果出现以下另外一种错误, 请根据<步骤4.2>解决

undefined reference to `lws_extension_callback_pm_deflate'

    4.2) 再次打开/home/user/libwebsockets-master/CMakeLists.txt文件, 并找到此项: 

option(LWS_WITHOUT_EXTENSIONS "Don't compile with extensions" ON)

    把ON改成OFF, 再根据<步骤2>再次编译libwebsockets, 然后再根据<步骤3>再接着编译测试文件.

步骤5) 测试:

现在minimal-ws-server-echo编译成功, 然后启动, 使用默认的ip端口, localhost和7681, 使用websocket client测试. 这里提供一个离线的client

链接:https://pan.baidu.com/s/1okT6kjM80mTXBQOItdp_Yw 
提取码:qtsj 

测试结果如下:

结束:

    如果有同学在编译过程中遇到了其他问题, 可以留言一起讨论解决. 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值