0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ElfBoard技术贴|如何将libwebsockets库编译为x86架构

ElfBoard 2024-07-10 09:38 次阅读

在之前的文章中,我们已经详细介绍了如何交叉编译libwebsockets并将其部署到ELF 1开发板上。然而在调试阶段,发现将libwebsockets在Ubuntu环境下编译为x86架构可能更为方便和高效。


通过在主机环境中编译运用x86架构下的libwebsockets库,可以充分利用主机卓越的计算性能与丰富的调试资源,显著提升开发及调试工作的效率与便捷性。


接下来,将和各位小伙伴详尽阐述在Ubuntu系统中编译libwebsockets库的具体步骤,以及如何对其进行有效测试。

编译libwebsockets

1、从Github下载libwebsockets源码

https://github.com/warmcat/libwebsockets


2、将下载的libwebsockets-main.zip拷贝到开发环境/home/elf/work目录下解压

elf@ubuntu:~/work$ unzip libwebsockets-main.zip

3、进入解压后的目录,新建build和insatll目录

elf@ubuntu:~/work$ cd libwebsockets-main/ elf@ubuntu:~/work/libwebsockets-main$ mkdir build elf@ubuntu:~/work/libwebsockets-main$ mkdir install

4、进入build目录,配置编译环境并编译源码

elf@ubuntu:~/work/libwebsockets-main$ cd build/ elf@ubuntu:~/work/libwebsockets-main/build$ cmake -DCMAKE_INSTALL_PREFIX=../install .. elf@ubuntu:~/work/libwebsockets-main/build$ make

5、编译完成后,安装文件

elf@ubuntu:~/work/libwebsockets-main/build$ make install

基础测试

验证libwebsockets库的基本功能,确保服务器能够正确启动并能通过浏览器访问。

1、测试工具使用libwebsockets提供的测试程序进行测试,查看安装目录中的可执行文件:

elf@ubuntu:~/work/libwebsockets-main/build$ cd ../install/bin/ elf@ubuntu:~/work/libwebsockets-main/install/bin$ ls libwebsockets-test-client libwebsockets-test-lejp libwebsockets-test-server libwebsockets-test-server-extpoll

2、运行服务器端测试程序

elf@ubuntu:~/work/libwebsockets-main/install/bin$ libwebsockets-test-server

wKgZomaN5RuAdZbQAAI8_pAMDFs722.png

可以看到服务器已经在7681端口监听。

3、在浏览器中访问服务器

打开浏览器,输入http://192.168.2.101:7681,替换192.168.2.101为自己的服务器IP地址。出现如下页面,测试成功。

wKgZomaN5TGAQYJUAAIm7yh8t6Y816.png

扩展测试

前面已经介绍了如何将libwebsockets库编译成ARM架构并移植到ELF 1开发板上。为了验证 libwebsockets 库在不同架构上的兼容性和实际应用中的稳定性,以ARM开发板为客户端来连接虚拟机上的服务端。

前提:将虚拟机设置为桥接模式,使虚拟机和开发板处于同一局域网内,确保网络连接正常。

1、虚拟机运行服务端测试程序

elf@ubuntu:~/work/libwebsockets-main/install/bin$ libwebsockets-test-server

wKgZomaN5V6AXF3GAAJ0C6KmW_U685.png

可以看到服务器已经在7681端口监听。

2、开发板运行客户端测试程序

客户端命令格式:

libwebsockets-test-client [--port=

] [--ssl] [-k] [-v ] [-d ] [-l]

执行如下命令,替换192.168.2.101为自己的服务器IP地址。

root@ELF1:~# libwebsockets-test-client 192.168.2.101 --port=7681

wKgZomaN5ZmAf5LKAAQg0IhTPI0112.png

可以看到连接开始于2024年6月24日15:55:01,目标IP地址为192.168.2.101。连接成功后,客户端打印了mirror: LWS_CALLBACK_CLIENT_ESTABLISHED的消息,表示已成功建立与服务器的WebSocket连接。

至此就完成了将libwebsockets库编译为x86架构的步骤,希望本篇指南能成为各位小伙伴在嵌入式技术探索之旅上的得力助手。如果您在实践过程中遇到任何问题,欢迎留言交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6014

    文章

    44201

    浏览量

    625149
  • 嵌入式
    +关注

    关注

    5021

    文章

    18561

    浏览量

    294225
  • 嵌入式开发
    +关注

    关注

    18

    文章

    990

    浏览量

    47213
  • 嵌入式开发板

    关注

    5

    文章

    76

    浏览量

    18633
收藏 人收藏

    评论

    相关推荐

    ELF 1技术|如何在Ubuntu中编译OpenCV

    在之前发布的文章中探讨了交叉编译OpenCV并部署至嵌入式系统的方法。然而,在调试阶段,我们发现在Ubuntu环境下OpenCV编译为X86架构
    的头像 发表于 05-31 16:41 957次阅读
    ELF 1<b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何在Ubuntu中<b class='flag-5'>编译</b>OpenCV<b class='flag-5'>库</b>

    I.MX6ULL-飞凌 ElfBoard ELF1板卡 - 如何在Ubuntu中编译OpenCV(X86架构

    使用X86架构的OpenCV,利用主机的强大计算性能和丰富的调试工具,可以加速开发进程并简化调试环节。下面就跟小伙伴详细讲述如何在Ubuntu环境下 OpenCV
    发表于 06-07 09:32

    [X86架构和ARM架构,在工业领域的优势争霸] X86与ARM谁更胜...

    [X86架构和ARM架构,在工业领域的优势争霸]X86与ARM谁更胜一筹? X86作为经典的CISC指令集,其
    发表于 08-01 10:45

    x86架构和arm架构的区别

    X86架构X86指令集,它属于CISC指令集。ARM架构是ARM指令集,属于RISC指令集。X86是冯若依曼结构,ARM是哈弗结构,这个不
    发表于 09-27 14:40

    适用于x86架构的快速启动步骤是什么?

    x86架构通常会唤起人们对家用电脑或企业服务器的思索。这并不出人意料,因为x86处理器的功耗通常较大。最近,英特尔公司开始以嵌入式、低功耗和低成本市场为目标,并推出了基于x86
    发表于 03-20 06:38

    ARM架构的系统与X86架构系统的特性有什么不同?

    ARM的架构相较于x86有哪些特点?ARM架构的系统与X86架构系统的特性有什么不同?
    发表于 06-16 09:05

    Powerpc架构X86架构的区别

    目录1、ARM1.1 ARM历史1.2 ARM内核系列2、MIPS应用范围发展历史3、PowerPC三巨头4、X86架构X86历史5、PowerPC架构相比于ARM的优势6、Power
    发表于 07-26 06:16

    x86架构的最大特色在哪

    x86系:x86架构的最大特色在于可以兼容Windows操作系统,现已成为了业界的一种标准。芯片巨头美国英特尔(Intel)一家独大。——(北大众志、兆芯、海光)兆芯:上海兆芯集成电路有限公司(以下
    发表于 07-27 08:14

    arm架构x86架构有什么区别

    什么叫arm架构x86架构是由哪些部分组成的?arm架构x86架构有什么区别?
    发表于 10-25 08:25

    X86架构和ARM架构

      ARM架构是一个32位元精简指令集中央处理器架构x86架构指的是特定微处理器执行的一些计算机语言指令集。X86
    发表于 11-30 12:48
    <b class='flag-5'>X86</b><b class='flag-5'>架构</b>和ARM<b class='flag-5'>架构</b>

    X86架构和ARM架构,在工业领域的优势争霸

    在处理器架构方面,X86架构和ARM架构在性能方面有那些区别? X86架构和ARM
    发表于 07-31 15:58 6600次阅读

    一文看懂arm架构x86架构有什么区别

    本文主要介绍的是arm架构x86架构的区别,首先介绍了ARM架构图,其次介绍了x86架构图,最
    的头像 发表于 05-16 14:19 30.8w次阅读
    一文看懂arm<b class='flag-5'>架构</b>和<b class='flag-5'>x86</b><b class='flag-5'>架构</b>有什么区别

    X86架构与Arm架构区别

    X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。x86泛指一系列基
    的头像 发表于 02-22 09:37 5927次阅读

    x86架构工业主板解决方案

    x86架构工业主板主要用于工业场合,是工业计算机的重要组成部分。由于x86架构工业母板能够适应温度范围大的环境,并且能够长期在高负载环境下工作,因此在工业控制行业得到了广泛的应用。接下
    的头像 发表于 03-07 10:26 1078次阅读

    X86架构与Arm架构的区别

    X86架构和ARM架构是主流的两种CPU架构X86架构的CPU是PC服务器行业的老大,ARM
    的头像 发表于 06-16 12:50 1.5w次阅读
    <b class='flag-5'>X86</b><b class='flag-5'>架构</b>与Arm<b class='flag-5'>架构</b>的区别