热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7.9下Libwebsockets源码编译与测试指南

本文档详细介绍了在CentOSLinux7.9系统环境下,如何从源代码编译安装libwebsockets库及其示例程序,并提供了编译过程中可能遇到的问题及解决方案。

一、环境配置

操作系统:CentOS Linux 7.9.2009 (Core)
编译器版本:GCC 4.8.5 20150623 (Red Hat 4.8.5-44)
Libwebsockets 版本:v4.3.0


二、获取源码

源码可以从 GitHub 的官方仓库下载:
地址:https://github.com/warmcat/libwebsockets
建议直接下载 Release 版本以避免不必要的错误。


三、编译流程


1、构建库文件和头文件

首先,将下载的压缩包解压,并在根目录下创建一个名为 build 的文件夹用于存放编译结果。
接着,进入 build 文件夹,运行以下命令进行编译:

cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/../output
make
make install

完成上述步骤后,将在根目录下生成 output 文件夹,其中包含了编译后的头文件以及静态库文件 libwebsockets.a 和动态库文件 libwebsockets.so。


2、编译示例程序

Libwebsockets 提供了多个示例程序,位于根目录下的 minimal-examples 文件夹内。需要使用 cmake 分别对每个示例进行编译。
注意:如果之前更改了库文件的默认安装路径,则需要相应地调整 CMakeLists.txt 中的库和头文件路径设置。


(1)配置库和头文件路径

例如,在 ws-server/minimal-ws-server 目录下的 CMakeLists.txt 文件中,添加如下行以指定库和头文件的位置:

include_directories(../../../output/include)
LINK_DIRECTORIES(../../../output/lib)


(2)编译示例程序(minimal-ws-server)

在 minimal-ws-server 目录中执行以下命令来编译示例程序:

cmake . -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_ROLE_WS=1 -DLWS_WITH_SERVER=1
make


(3)测试示例程序(minimal-ws-server)

假设您的虚拟机 IP 地址为 192.168.9.23,可以通过物理机上的浏览器访问此地址来测试示例程序。
启动示例程序后,打开两个浏览器窗口,输入 URL 192.168.9.23:7681,即可实现消息的互相传递。


四、常见问题解决


1、找不到 OpenSSL

错误信息:
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)

原因:系统缺少 OpenSSL 开发库。
解决方案:通过以下命令安装 OpenSSL 及其开发库:

sudo yum install -y openssl openssl-devel


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本教程将详细指导您如何通过光盘引导安装 CentOS 7.0,包括选择语言、系统分区和配置网络等关键步骤。整个过程大约需要8分钟,具体时间视硬件配置而定。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
author-avatar
忄幹_856
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有