如何在 Ubuntu 中安装 libwebsocket 库?

2024-03-29

我正在尝试在我的 ubuntu 中安装 libwebsocket 。

所以我下载了该项目https://github.com/warmcat/libwebsockets https://github.com/warmcat/libwebsockets解压它,然后我按照安装说明进行操作。

我键入命令 cmake FH 并收到以下消息。

  You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:Email Address []:SUCCSESFULLY generated SSL certificate
Generating API documentation
-- Looking for RPMTools... - rpmbuild NOT FOUND
---------------------------------------------------------------------
  Settings:  (For more help do cmake -LH <srcpath>
---------------------------------------------------------------------
 LWS_WITH_SSL = ON  (SSL Support)
 LWS_SSL_CLIENT_USE_OS_CA_CERTS = 1
 LWS_USE_CYASSL = OFF (CyaSSL replacement for OpenSSL)
 LWS_WITHOUT_BUILTIN_GETIFADDRS = OFF
 LWS_WITHOUT_CLIENT = OFF
 LWS_WITHOUT_SERVER = OFF
 LWS_LINK_TESTAPPS_DYNAMIC = OFF
 LWS_WITHOUT_TESTAPPS = OFF
 LWS_WITHOUT_TEST_SERVER = OFF
 LWS_WITHOUT_TEST_SERVER_EXTPOLL = OFF
 LWS_WITHOUT_TEST_PING = OFF
 LWS_WITHOUT_TEST_CLIENT = OFF
 LWS_WITHOUT_TEST_FRAGGLE = OFF
 LWS_WITHOUT_DEBUG = OFF
 LWS_WITHOUT_EXTENSIONS = OFF
 LWS_WITH_LATENCY = OFF
 LWS_WITHOUT_DAEMONIZE = OFF
 LWS_USE_LIBEV = 
 LWS_IPV6 = OFF
 LWS_WITH_HTTP2 = OFF
---------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /home/maroua/libwebsocket/libwebsockets-master
-- Cache values
// Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=

// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local

// Libwebsockets include directories
LIBWEBSOCKETS_INCLUDE_DIRS:PATH=/home/maroua/libwebsocket/libwebsockets-master/lib;/home/maroua/libwebsocket/libwebsockets-master

// Libwebsocket libraries
LIBWEBSOCKETS_LIBRARIES:STRING=websocket;websockets_shared

// Libwebsocket shared library
LIBWEBSOCKETS_LIBRARIES_SHARED:STRING=websockets_shared

// Libwebsocket static library
LIBWEBSOCKETS_LIBRARIES_STATIC:STRING=websocket

// Path to the CyaSSL include directory
LWS_CYASSL_INCLUDE_DIRS:PATH=

// Path to the CyaSSL library
LWS_CYASSL_LIB:PATH=

// Installation directory for executables
LWS_INSTALL_BIN_DIR:PATH=bin

// Installation directory for CMake files
LWS_INSTALL_CMAKE_DIR:PATH=lib/cmake/libwebsockets

// Installation directory for example files
LWS_INSTALL_EXAMPLES_DIR:PATH=bin

// Installation directory for header files
LWS_INSTALL_INCLUDE_DIR:PATH=include

// Installation directory for libraries
LWS_INSTALL_LIB_DIR:PATH=lib

// Compile with support for ipv6
LWS_IPV6:BOOL=OFF

// Link the test apps to the shared version of the library. Default is to link statically
LWS_LINK_TESTAPPS_DYNAMIC:BOOL=OFF

// Server SSL certificate directory
LWS_OPENSSL_CLIENT_CERTS:PATH=../share

// SSL support should make use of OS installed CA root certs
LWS_SSL_CLIENT_USE_OS_CA_CERTS:BOOL=ON

// Use CyaSSL replacement for OpenSSL. When settings this, you also need to specify LWS_CYASSL_LIB and LWS_CYASSL_INCLUDE_DIRS
LWS_USE_CYASSL:BOOL=OFF

// Search the system for ZLib instead of using the included one (on Windows)
LWS_USE_EXTERNAL_ZLIB:BOOL=OFF

// Don't use BSD getifaddrs implementation from libwebsockets if it is missing (this will result in a compilation error) ... Default is your libc provides it. On some systems such as uclibc it doesn't exist.
LWS_WITHOUT_BUILTIN_GETIFADDRS:BOOL=OFF

// Don't build the client part of the library
LWS_WITHOUT_CLIENT:BOOL=OFF

// Don't build the daemonization api
LWS_WITHOUT_DAEMONIZE:BOOL=OFF

// Don't compile debug related code
LWS_WITHOUT_DEBUG:BOOL=OFF

// Don't compile with extensions
LWS_WITHOUT_EXTENSIONS:BOOL=OFF

// Don't build the server part of the library
LWS_WITHOUT_SERVER:BOOL=OFF

// Don't build the libwebsocket-test-apps
LWS_WITHOUT_TESTAPPS:BOOL=OFF

// Don't build the client test application
LWS_WITHOUT_TEST_CLIENT:BOOL=OFF

// Don't build the ping test application
LWS_WITHOUT_TEST_FRAGGLE:BOOL=OFF

// Don't build the ping test application
LWS_WITHOUT_TEST_PING:BOOL=OFF

// Don't build the test server
LWS_WITHOUT_TEST_SERVER:BOOL=OFF

// Don't build the test server version that uses external poll
LWS_WITHOUT_TEST_SERVER_EXTPOLL:BOOL=OFF

// Compile with support for http2
LWS_WITH_HTTP2:BOOL=OFF

// Build latency measuring code into the library
LWS_WITH_LATENCY:BOOL=OFF

// Compile with support for libev
LWS_WITH_LIBEV:BOOL=OFF

// Include SSL support (default OpenSSL, CyaSSL if LWS_USE_CYASSL is set)
LWS_WITH_SSL:BOOL=ON

// The RPM builder tool
RPMTools_RPMBUILD_EXECUTABLE:FILEPATH=RPMTools_RPMBUILD_EXECUTABLE-NOTFOUND

我尝试编译一个使用 libwebsocket.h 的 C 程序,它告诉我它不存在。 任何人都可以告诉我安装这个库的正确方法吗? 谢谢你的帮助 。


在 Ubuntu 中安装 libwebsocket 的一个简单方法是在终端中使用以下命令:

sudo apt-get install libwebsockets-dev

该命令将安装该版本1.2.
The libwebsockets.h文件将位于/usr/include/libwebsockets.h


拥有此库的另一种方法是获取最新版本(1.4目前)来自 GitHub。为此,请打开一个Terminal并进入您想要获取库的目录(我将其称为lib_dir).

当你在lib_dir目录输入此命令以获取代码:

克隆https://github.com/warmcat/libwebsockets.git https://github.com/warmcat/libwebsockets.git

命令完成后你会发现一个名为libwebsockets.
The libwebsockets.h文件将位于lib_dir/libwebsockets/lib

如果您需要/想要构建该库并将其安装在您的系统中,请进入lib_dir然后输入以下命令:

sudo apt-get install libssl-dev
mkdir 构建
光盘构建
..
make
须藤进行安装
LD配置

这将把库安装在/usr/local/include.
并确保您刚刚安装的版本:

pkg-config --modversion libwebsockets

最后你需要包含在编译器中(包含路径-I):

/usr/local/包括

在链接器库(Libraries -l)中:

网络套接字

最后(库搜索路径-L):

/usr/local/lib

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 中安装 libwebsocket 库? 的相关文章

  • 为什么 Blazor 模板使用工厂来创建 HttpClient 实例

    当处置HttpClient 可能会遇到 套接字耗尽 的情况problem https learn microsoft com en us dotnet architecture microservices implement resilie
  • 将阻塞调用包装为异步,以实现更好的线程重用和响应式 UI

    我有一个类负责通过调用遗留类来检索产品可用性 该遗留类本身通过进行 BLOCKING 网络调用在内部收集产品数据 请注意 我无法修改旧版 API 的代码 由于所有产品都是相互独立的 因此我希望并行收集信息 而不会创建任何不必要的线程 也不会
  • buildozer android NDK 未下载 Ubuntu

    我使用的是 Ubuntu 16 04 LTS 操作系统 我已经在 python2 和 python3 中安装了 buildozer android sdk 已安装 但 buildozer 在下载 android NDK 时显示错误 请帮我解
  • C++变量声明和初始化规则

    考虑以下声明和初始化类型变量的方法C C c1 C c2 c2 C C c3 C C c4 C 所有这些是否完全等同 或者其中一些可以根据确切的定义而有所不同C 假设它有公共默认值和复制构造函数 这些意味着 C c1 default con
  • CommandBehavior.SequentialAccess 是否有任何性能提升?

    我意识到我总是按照索引返回的顺序读取字段 使用常量 所以据我所知 我的代码已经与 CommandBehavior SequentialAccess 兼容 如果我打开它会有什么好处吗 DataReader 已经是只向前 只读 这才是真正的性能
  • 为什么C++中的内置堆栈接口没有clear()函数?

    在进一步使用它之前 我必须清空堆栈 我确实明白可以这样做 while mystack empty mystack pop 没有这个功能有什么具体原因吗 或者只是第一次制作时没有人感受到它的要求而被排除在外 另外 Java 中的堆栈接口确实有
  • C#等待串口数据

    我试图通过 C 应用程序从指纹扫描仪获取数据 但在指纹发送之前 我的整个代码都会执行 我尝试使用延迟功能System Threading Thread Sleep 1000 因此它可以在下一步执行之前获取数据 但这一切似乎都是徒劳的 任何人
  • C# 从视频文件的一部分中提取帧

    使用 AForge ffmpeg 包装器 您可以使用 VideoFileReader 类从视频中提取帧并将其保存为位图 请参阅以下示例 提取 avi 文件的帧 https stackoverflow com questions 178256
  • Azure 函数 - 如何读取表单数据

    如何阅读表单数据 in Azure 函数 我尝试了多种方法 但总是出现错误 例如 using System Net public static async Task
  • 安装 openstack 时发生错误:./stack.sh:137:die

    我尝试使用以下命令通过 devstack 安装 openstack git 克隆https github com openstack dev devstack git https github com openstack dev devst
  • 如何使 YY_INPUT 指向字符串而不是 Lex & Yacc (Solaris) 中的标准输入

    我想要我的yylex 解析字符串而不是文件或标准输入 如何使用 Solaris 提供的 Lex 和 Yacc 来做到这一点 重新定义YY INPUT 这是一个工作示例 使用命令编译并运行 yacc d parser y lex lexer
  • 连接到 Wikipedia API 的 WebRequest

    这可能是一个可悲的简单问题 但我似乎无法格式化帖子网络请求 响应以从维基百科API http en wikipedia org wiki Wikipedia API 如果有人可以帮助我查看我的问题 我已在下面发布了我的代码 string p
  • 检查字符串是否多次包含子字符串[重复]

    这个问题在这里已经有答案了 要搜索字符串内的子字符串 我可以使用contains 功能 但是如何检查一个字符串是否多次包含子字符串呢 优化这一点 对我来说 知道有多个结果而不是有多少就足够了 尝试利用快速IndexOf and LastIn
  • #region 描述编译到.net 中的.exe 中?

    region endregion 指令 描述 是否编译到 NET 中的 EXE 中 我知道注释不是 但我经常在一个区域内对代码组进行分块并给出有用的描述 我想确保这些描述在我编译的代码中不可见 我不是在寻找混淆信息 不过 谢谢 不 他们不是
  • 尝试返回 IQueryable 时发生转换错误

    我有一个查询应该返回IQueryable
  • 如何解析 XML diff 以仅显示差异

    我使用以下方法比较两个序列化对象的 xmlMS XmlDiffPatch 工具 http msdn microsoft com en us library aa302294 aspx C XML 示例 1
  • qt 读取就绪信号

    我正在尝试与运行 1996 年处理器的设备建立串行连接 这意味着数据传输回我可能需要几秒钟的时间 我知道readyRead每次有新数据可用时都会生成信号 但我的问题是生成多长时间 这也是我可以测试就绪读取是否较低的一种方法 因为如果当它们不
  • 哪个是对的? catch (_com_error e) 还是 catch (_com_error& e)?

    我应该使用哪一个 catch com error e or catch com error e 第二 这是我试图引用萨特的话 按值抛出 按引用捕获 学会catch正确 按值 而不是指针 抛出异常 通过引用捕获它们 通常是const 这是组合
  • 编译时检查函数是否使用/未使用 C++

    我想在编译时检查是否有某些函数某堂课使用 未使用 相应地使编译过程失败 通过 例如如果函数F1在代码中的某处调用我希望编译成功 并且 if 函数F2称为我希望它失败 关于如何使用预处理器 模板或任何其他 C 元编程技术来做到这一点 有什么想
  • 可选地支持模板的initializer_list构造可能包装容器

    如果我有一个包装标准容器的模板 似乎我可以相当轻松地委托初始化器列表构造函数 template

随机推荐