一、环境:
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.a、libwebsockets.so。
2、编译demo源码
在根目录下的minimal-examples目录中有很多例子,这些例子要用cmake在该目录下分别编译。
注:我这边生成库文件的时候修改了默认安装位置,所以相对应的CMakeLists.txt要把库和头文件路径配上。
(1)添加库和头文件路径
举例: ws-server/minimal-ws-server
在CMakeLists.txt要把库和头文件路径配上
include_directories(../../../output/include)
LINK_DIRECTORIES(../../../output/lib)
(2)编译demo(minimal-ws-server)
在minimal-ws-server目录下执行命令:
cmake . -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_ROLE_WS=1 -DLWS_WITH_SERVER=1
make
(2)demo测试(minimal-ws-server)
我虚拟机的IP是:192.168.9.23,然后我用物理机的网页访问。
执行程序:
在物理机上开两个网页访问 192.168.9.23:7681,这两个网页的消息可以互通。
四、异常问题处理
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