热门标签 | 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


推荐阅读
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中安装MySQL 5.5.37时遇到的启动失败和PID文件问题,并提供了详细的解决方案,包括日志分析、权限检查等步骤。 ... [详细]
  • 在DELL Inspiron 14R上部署CentOS X64 6.4的详细步骤
    本文详细记录了在DELL Inspiron 14R笔记本电脑上安装CentOS X64 6.4操作系统的过程,包括遇到的问题及解决方法。 ... [详细]
  • 本文由「Vue虚拟实验室」的成员effort撰写,深入探讨了Vue CLI 3.0创建项目后的配置细节,特别是如何通过配置代理解决开发环境中的跨域问题。 ... [详细]
  • 本文探讨了在Git子模块目录中运行pre-commit时遇到的错误,并提供了一种通过Docker环境解决此问题的方法。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
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社区 版权所有