作者:忄幹_856 | 来源:互联网 | 2024-12-10 17:48
本文档详细介绍了在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