ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux下libwebsockets源码编译以及测试

2021-11-03 16:00:22  阅读:384  来源: 互联网

标签:cmake .. OpenSSL server 编译 源码 linux libwebsockets minimal


一、环境:

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)

在这里插入图片描述

(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

标签:cmake,..,OpenSSL,server,编译,源码,linux,libwebsockets,minimal
来源: https://blog.csdn.net/lang523493505/article/details/121116458

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有