linux下libwebsockets源码编译以及测试

一、环境:

PC操作系统:CentOS Linux release 7.9.2009 (Core)
gcc 版本:4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
libwebsockets 版本:v4.3.0

二、下载

网址:https://github.com/warmcat/libwebsockets
找Release版本下载会减少很多不必要的麻烦

三、编译

1、生成库文件以及头文件

解压后在根目录下创建build目录用于编译。
进入build目录。
编译指令:

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

编译安装成功后会在根目录下生成output目录,有编译出来的头文件和 libwebsockets.alibwebsockets.so

2、编译demo源码

在根目录下的minimal-examples目录中有很多例子,这些例子要用cmake在该目录下分别编译。
注:我这边生成库文件的时候修改了默认安装位置,所以相对应的CMakeLists.txt要把库和头文件路径配上。

(1)添加库和头文件路径

举例: ws-server/minimal-ws-server
CMakeLists.txt要把库和头文件路径配上

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

linux下libwebsockets源码编译以及测试

(2)编译demo(minimal-ws-server)

minimal-ws-server目录下执行命令:

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

linux下libwebsockets源码编译以及测试

(2)demo测试(minimal-ws-server)

我虚拟机的IP是:192.168.9.23,然后我用物理机的网页访问。
执行程序:
linux下libwebsockets源码编译以及测试
在物理机上开两个网页访问 192.168.9.23:7681,这两个网页的消息可以互通。
linux下libwebsockets源码编译以及测试

四、异常问题处理

1、Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the

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)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)
  lib/tls/CMakeLists.txt:259 (find_package)

这个问题是由于系统中没有安装OpenSSL引起的
解决办法:

sudo yum install -y openssl openssl-devel
上一篇:Leetcode - 38. 外观数列


下一篇:深入学习checkbox类型的input元素