如何將libwebsockets庫編譯為x86架構

在之前的文章中,我們已經詳細介紹了如何交叉編譯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

圖片

可以看到服務器已經在7681端口監聽。

3、在瀏覽器中訪問服務器

打開瀏覽器,輸入http://192.168.2.101:7681,替換192.168.2.101為自己的服務器IP地址。出現如下頁面,測試成功。

圖片

擴展測試

前面已經介紹了如何將libwebsockets庫編譯成ARM架構并移植到ELF 1開發板上。為了驗證 libwebsockets 庫在不同架構上的兼容性和實際應用中的穩定性,以ARM開發板為客戶端來連接虛擬機上的服務端。

前提:將虛擬機設置為橋接模式,使虛擬機和開發板處于同一局域網內,確保網絡連接正常。

1、虛擬機運行服務端測試程序

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

圖片

可以看到服務器已經在7681端口監聽。

2、開發板運行客戶端測試程序

客戶端命令格式:

libwebsockets-test-client <server address> [--port=<p>] [--ssl] [-k] [-v <ver>] [-d <log bitfield>] [-l]

執行如下命令,替換192.168.2.101為自己的服務器IP地址。

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

圖片

可以看到連接開始于2024年6月24日15:55:01,目標IP地址為192.168.2.101。連接成功后,客戶端打印了mirror: LWS_CALLBACK_CLIENT_ESTABLISHED的消息,表示已成功建立與服務器的WebSocket連接。

至此就完成了將libwebsockets庫編譯為x86架構的步驟,希望本篇指南能成為各位小伙伴在嵌入式技術探索之旅上的得力助手。如果您在實踐過程中遇到任何問題,歡迎留言交流。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44368.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里ChatSDK使用,開箱即用聊天框

介紹&#xff1a; 效果&#xff1a;智能助理 ChatSDK&#xff0c;是在ChatUI的基礎上&#xff0c;結合阿里云智能客服的最佳實踐&#xff0c;沉淀和總結出來的一個開箱即用的&#xff0c;可快速搭建智能對話機器人的框架。它簡單易上手&#xff0c;通過簡單的配置就能搭建出對…

Flowable工作流引擎核心事件詳細解釋說明

Flowable工作流引擎核心事件詳細解釋說明 流程執行事件 需要了解全部詳細事件的請看這個鏈接Flowable&#xff08;一個開源的工作流和業務流程管理引擎&#xff09;中與事件相關的一些核心概念 流程開始和結束事件 PROCESS_STARTED&#xff1a;標記流程實例的開始。PROCESS…

公益快報 | 中科億海微以企業獎學金為紐帶,深化校企合作

近日&#xff0c;為回報母校、激勵湖南大學機器人視覺感知與控制技術國家工程研究中心廣大學生&#xff0c;中科億海微電子科技&#xff08;蘇州&#xff09;有限公司&#xff08;簡稱“中科億海微”&#xff09;捐贈設立企業獎學金。此項獎學金的設立標志著校企合作邁向全方位…

【C++】C++中struct結構體和class類的區別

在C中&#xff0c; struct 和 class 在很多方面都非常相似&#xff0c;它們都可以包含數據成員&#xff08;變量&#xff09;和成員函數&#xff08;方法&#xff09;。然而&#xff0c;它們之間還是存在一些關鍵的區別&#xff1a; 1. 默認訪問權限 struct 的成員默認是 pub…

實現組件存儲 WinSxS 文件夾解析

目錄 背景 目錄名的組成 解析目錄結構 更新&總結 文章出處鏈接&#xff1a;[https://blog.csdn.net/qq_59075481/article/details/140385969]. 背景 WinSxS 文件夾位于 Windows 文件夾中&#xff0c;例如 C: \Windows\WinSxS。它是 Windows 組件存儲文件的位置。 Wind…

深入理解Spring Boot中的日志框架選擇

深入理解Spring Boot中的日志框架選擇 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 1. 背景與需求 在開發和運維中&#xff0c;日志是不可或缺的重要組成部分。Spring Boot作為一個流行的Java開…

idea啟動vue項目一直卡死在51%,問題分析及其如何解決

如果你的項目也一直卡在百分之幾十&#xff0c;你可以參考下面的方法&#xff0c;試一試能否解決 問題描述&#xff1a; 通過在idea終端中輸入命令 npm run serve 啟動vue項目&#xff0c;啟動進程一直卡在51% 如何解決&#xff1a; 檢查 < template > 標簽中的html內容…

深度學習中的超參管理方法:argparse模塊

在深度學習方法中我們不可避免地會遇到大量超參數如&#xff08;batch_size、learning_rate等&#xff09;。不同的超參數組合可以得到不同的訓練/測試結果。所以在訓練和測試過程中我們需要不斷調整超參數獲得理想的結果&#xff08;煉丹&#xff09;&#xff0c;如果每一次去…

破解世紀難題:顛覆性方案解鎖世界十大未解之謎

前言 在科學的浩瀚宇宙中&#xff0c;始終存在一些引人入勝的謎題&#xff0c;它們挑戰著人類智慧的極限。這些謎題不僅涵蓋了數學、物理、天文學和生物學等領域&#xff0c;還觸及到意識和宇宙的本質。破解這些世紀難題&#xff0c;不僅意味著人類知識的巨大飛躍&#xff0c;…

【Windows】硬鏈接和軟鏈接(OneDrive同步指定目錄?)

文章目錄 一、場景帶入二、Windows下的硬鏈接和軟鏈接2.1 硬鏈接&#xff08;Hard Link&#xff09;2.2 軟鏈接&#xff08;符號鏈接&#xff0c;Symbolic Link&#xff09;2.3 軟鏈接和快捷方式2.4 應用場景 三、OneDrive中的應用3.1 錯誤姿勢3.2 好像可行的嘗試3.3 合理的解決…

智能貓砂盆兩種類型怎么選?深度剖析熱門前三的品牌!

應該也有很多鏟屎官像我一樣&#xff0c;第一個入手的通常都是封閉式的智能貓砂盆&#xff0c;自動清潔是很好用&#xff0c;但問題也隨之而來。有時候滾筒式的智能貓砂盆會在清潔過程中將砂團摔碎&#xff0c;導致糞便暴露出來產生臭味&#xff0c;這樣我們回來不得不又再次進…

LangChain —— Prompt Templates

文章目錄 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates 一、什么是 Prompt Templates 提示模板有助于將用戶輸入和參數轉換為語言模型的指令。這可用于指導模型的響應&#x…

LangChain框架詳解

LangChain框架詳解 LangChain是一個基于語言模型開發應用程序的強大框架&#xff0c;旨在幫助開發人員簡化與大模型交互、數據檢索以及將不同功能模塊串聯起來以完成復雜任務的過程。它提供了一套豐富的工具、組件和接口&#xff0c;使開發人員能夠輕松構建上下文感知和具備邏…

基于stm32+小程序開發智能家居門禁系統-硬件-軟件實現

視頻演示&#xff1a; 基于stm32智能家居門禁系統小程序開發項目 視頻還有添加刪除卡號&#xff0c;添加刪除指紋&#xff0c;關閉繼電器電源等沒有演示。 代碼Git&#xff1a; https://github.com/Abear6666/stm32lock 總體功能&#xff1a; 本門禁系統主要解鎖功能分別為卡…

沖積圖(alluvial plot)展示競爭性內源RNA(ceRNA)網絡

導讀&#xff1a; 用沖積圖展示ceRNA網絡可以更好地查看競爭和吸附關系&#xff0c;讓靜態的圖&#xff0c;“流動”起來。 沖積圖簡介 Alluvial plot&#xff08;沖積圖&#xff09;是一種流程圖&#xff0c;最初設計用于展示網絡結構隨時間的變化。這種圖表特別適用于展示…

sed的替換可用:斜杠/,豎或|,井號# 等符號, 但是查找只能用斜杠/ , sed的查找和替換可以一起用 筆記240711

sed的替換可用:斜杠/,豎或|,井號# 等符號, 但是… … 查找只能用斜杠/ 替換必須用s開頭, 如:s/ , s| , s# 例如: s/正則/替換內容/s/正則/替換內容/gs|正則|替換內容|s|正則|替換內容|gs#正則#替換內容#s#正則#替換內容#g 當內容包含斜杠/時, (例如路徑) , 使用 豎或|,井號…

06_TypeScript 中的函數

TypeScript 中的函數 一、函數的定義es5 定義函數的方法TypeScript 定義函數的方法ts 中定義方法傳參 二、可選參數三、默認參數&#xff08;跟可選參數一樣&#xff09;四、剩余參數&#xff08;三點運算符的應用&#xff09;五、函數重載六、箭頭函數 es6 一、函數的定義 es…

Windows圖形界面(GUI)-SDK-C/C++ - 編輯框(edit)

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> 鏈接點擊跳轉博客主頁 目錄 編輯框(edit) 控件樣式 創建控件 初始控件 消息處理 示例代碼 編輯框(edit) 控件樣式 編輯框&#xff08;Edit Control&#xff09;是Windows中最常用的控件之一&#xff0c;用于接收用戶…

python 知識點累積

.items() tinydict {Google: www.google.com, Runoob: www.runoob.com, taobao: www.taobao.com}print (tinydict.items())運行結果 dict_items([(Google, www.google.com), (Runoob, www.runoob.com), (taobao, www.taobao.com)]) 返回的 dict_items([...]) 是一個字典項的…

【持續集成_05課_Linux部署SonarQube及結合開發項目部署】

一、Linux下安裝SonarQube 1、安裝sonarQube 前置條件&#xff1a;sonarQube不能使用root賬號進行啟動&#xff0c;所以需要創建普通用戶及 其用戶組 1&#xff09;創建組 2&#xff09;添加用戶、組名、密碼 3&#xff09;CMD上傳qube文件-不能傳到home路徑下哦 4&#xff09…