linux socket 开源库,linux c websocket开源库libwebsockets的编译和使用-Go语言中文社区...
我在编译过程中出现了本文步骤4.1和4.2所解决的两个问题, 如果你也出现了相同的问题, 请根据4.1和4.2解决, 如果没有出现, 请略过步骤4. 现步骤如下:
步骤1) 下载解压, github地址如下:
步骤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
如果万事大吉, 请略过, 直接看
而如果出现以下错误, 请根据解决
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, 再根据再次编译libwebsockets, 然后再根据再接着编译测试文件
如果编译成功, 请直接看, 而如果出现以下另外一种错误, 请根据解决
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, 再根据再次编译libwebsockets, 然后再根据再接着编译测试文件.
步骤5) 测试:
现在minimal-ws-server-echo编译成功, 然后启动, 使用默认的ip端口, localhost和7681, 使用websocket client测试. 这里提供一个离线的client
链接:https://pan.baidu.com/s/1okT6kjM80mTXBQOItdp_Yw
提取码:qtsj
测试结果如下:
结束:
如果有同学在编译过程中遇到了其他问题, 可以留言一起讨论解决.
linux socket 开源库,linux c websocket开源库libwebsockets的编译和使用-Go语言中文社区...相关推荐
- xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...
在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...
- 博通蓝牙驱动linux,基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录-Go语言中文社区...
说明 本文档是基于Android 8.1版本的一款博通蓝牙的驱动移植全过程记录.本驱动是通过/dev/ttyS2和蓝牙进行通信.因为较android以前的版本有很大变化尤其是上层关于蓝牙协议栈的部分, ...
- linux socket读写函数,Linux网络编程入门
第一个函数是socket函数. socket函数的Linux头文件以及函数定义如下: #include int socket(int domain, int type, int protocal); ...
- linux虚拟内存api,Linux虚拟内存空间分布-Go语言中文社区
平常总说cpu的位数,其实说的是cpu一次能运算的最长整数的宽度,既ALU(算术逻辑单元)的宽度. cpu的位数也是数据总线的条数 数据总线:数据线的总和,数据线就是cpu与内存进行数据传递的通道,一 ...
- qt程序部署在linux,Qt应用打包发布,部署真正的Qt程序LinuxWindows-Go语言中文社区...
最近在发布Qt应用时遇到了一些困难,Windows还好,在Linux上面发布遇到了不少的麻烦(实际Linux应该简单才对),经过在网络搜索发现帖子不少,但都比较片面,现把Qt应用程序在Linux&am ...
- go开发linux下桌面程序,使用FMXlinux 开发linux 桌面应用-Go语言中文社区
自从delphi 10.2 开始正式支持linux 开发来,大家一直关心为什么官方没有使用FMX来支持LInux 的桌面开发? 其实原因无非就几点: 1.Linux 大部分是应用还是服务端的,桌面应 ...
- linux 安装centos7,linux CentOs7 安装 Autojump 方便高效省事-Go语言中文社区
一.简介 autojump是一个命令行工具,它允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处. 有多种安装手法,但我只推荐我接下来介绍的一种: 首先确定你的系统开启EPEL保证有软件包源(在 ...
- zynq Linux软件中断,zynq7010 在 linux 系统下 irq_f2p 中断驱动-Go语言中文社区
1 说明 zynq 平台,需要用到 pl (FPGA)端发送中断给 ps端(ARM),发送的中断名称为 IRQ_F2P[15:0],该中断一共有16个,中断号分别为 61-68, 84-91.本文针对 ...
- kail linux dns欺骗,Kali Linux渗透测试-Ettercap DNS欺骗攻击-Go语言中文社区
Kali Linux渗透测试-Ettercap DNS欺骗攻击 DNS欺骗攻击基于中间人攻击.攻击者更改受害者从DNS服务器查询的域名解析结果,给受害者发送恶意网页或者钓鱼网页-浏览器依然显示正常的u ...
- 服务器系统goha,推荐一个轻量级且高性能的 Golang 网络库:gnet-Go语言中文社区...
image Github 主页 博客原文 欢迎大家围观~~,目前还在持续更新,感兴趣的话可以 star 一下暗中观察哦. 简介 gnet 是一个基于 Event-Loop 事件驱动的高性能和轻量级网络 ...
最新文章
- 【青少年编程】【一级】小狗散步
- 通过简单的线性回归理解机器学习的基本原理
- fixed 定位 苹果手机输入框触发时内容全部隐藏
- oracle12c ora 12547,Oracle 12c DBCA出现PRCR-1079 ORA-12547 CRS-5017
- 信息学奥赛一本通(1399:甲流病人初筛)
- android intent actionview,android – 检查Intent.ACTION_VIEW上的用户操作
- 用OpenCV实现Otsu算法
- pyinstaller cx_oracle,使用pyinstaller打包使用cx_Oracle模块的程序出现The specified module could not be found的问题...
- 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
- Spring框架的本质:3了解一点儿JavaConfig
- Xshell是做什么用的?Xshell使用教程分享
- iphone7一晚上掉电50%_苹果7待机一晚掉电多少
- npx mrm lint-staged 报错
- Evision显示器无法设置1440*900分辨率的问题解决
- 小波包MATLAB实现
- php 正则匹配小括号
- IO流的详解,彻底了解IO流
- 谈谈后端业务系统的微服务化改造
- Android 反编译apk文件
- 从Internet说起
热门文章
- 第8章 多项式回归与模型泛化 学习笔记上
- Unity直接调用Python脚本
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- Atitit 数据库的历史与未来 目录 1.1. 两个对于数据库强需求的行业。电信 金融	1 1.2. 艾提拉分析 对数据库强需求行业金融	1 2. 数据库历史	2 2.1. ,上个世纪50,6
- Atitit webdav应用场景 提升效率 小型数据管理 目录 1.1. 显示datalist	1 1.2. Ajax填充数据	1 1.3. 编辑数据	2 1.1.显示datalist
- 银联支付接口常见错误总结
- 能力的变迁:能力包括哪些方面
- 换手率:为什么美国人不爱频繁申赎基金?
- 高盛也上GitHub了!让交易员赚取10亿美元的神秘“利器” 即将开源
- 双管理人模式下的契约型私募基金实用发行指南