在之前的文章中,我們已經(jīng)詳細(xì)介紹了如何交叉編譯libwebsockets并將其部署到ELF 1開發(fā)板上。然而在調(diào)試階段,發(fā)現(xiàn)將libwebsockets在Ubuntu環(huán)境下編譯為x86架構(gòu)可能更為方便和高效。
通過在主機(jī)環(huán)境中編譯運(yùn)用x86架構(gòu)下的libwebsockets庫,可以充分利用主機(jī)卓越的計(jì)算性能與豐富的調(diào)試資源,顯著提升開發(fā)及調(diào)試工作的效率與便捷性。
接下來,將和各位小伙伴詳盡闡述在Ubuntu系統(tǒng)中編譯libwebsockets庫的具體步驟,以及如何對(duì)其進(jìn)行有效測試。
編譯libwebsockets
1、從Github下載libwebsockets源碼
https://github.com/warmcat/libwebsockets
2、將下載的libwebsockets-main.zip拷貝到開發(fā)環(huán)境/home/elf/work目錄下解壓
elf@ubuntu:~/work$ unzip libwebsockets-main.zip
3、進(jìn)入解壓后的目錄,新建build和insatll目錄
elf@ubuntu:~/work$ cd libwebsockets-main/ elf@ubuntu:~/work/libwebsockets-main$ mkdir build elf@ubuntu:~/work/libwebsockets-main$ mkdir install
4、進(jìn)入build目錄,配置編譯環(huán)境并編譯源碼
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
基礎(chǔ)測試
驗(yàn)證libwebsockets庫的基本功能,確保服務(wù)器能夠正確啟動(dòng)并能通過瀏覽器訪問。
1、測試工具使用libwebsockets提供的測試程序進(jìn)行測試,查看安裝目錄中的可執(zhí)行文件:
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、運(yùn)行服務(wù)器端測試程序
elf@ubuntu:~/work/libwebsockets-main/install/bin$ libwebsockets-test-server

可以看到服務(wù)器已經(jīng)在7681端口監(jiān)聽。
3、在瀏覽器中訪問服務(wù)器
打開瀏覽器,輸入http://192.168.2.101:7681,替換192.168.2.101為自己的服務(wù)器IP地址。出現(xiàn)如下頁面,測試成功。

擴(kuò)展測試
前面已經(jīng)介紹了如何將libwebsockets庫編譯成ARM架構(gòu)并移植到ELF 1開發(fā)板上。為了驗(yàn)證 libwebsockets 庫在不同架構(gòu)上的兼容性和實(shí)際應(yīng)用中的穩(wěn)定性,以ARM開發(fā)板為客戶端來連接虛擬機(jī)上的服務(wù)端。
前提:將虛擬機(jī)設(shè)置為橋接模式,使虛擬機(jī)和開發(fā)板處于同一局域網(wǎng)內(nèi),確保網(wǎng)絡(luò)連接正常。
1、虛擬機(jī)運(yùn)行服務(wù)端測試程序
elf@ubuntu:~/work/libwebsockets-main/install/bin$ libwebsockets-test-server

可以看到服務(wù)器已經(jīng)在7681端口監(jiān)聽。
2、開發(fā)板運(yùn)行客戶端測試程序
客戶端命令格式:
libwebsockets-test-client [--port=
] [--ssl] [-k] [-v ] [-d ] [-l]
執(zhí)行如下命令,替換192.168.2.101為自己的服務(wù)器IP地址。
root@ELF1:~# libwebsockets-test-client 192.168.2.101 --port=7681

可以看到連接開始于2024年6月24日15:55:01,目標(biāo)IP地址為192.168.2.101。連接成功后,客戶端打印了mirror: LWS_CALLBACK_CLIENT_ESTABLISHED的消息,表示已成功建立與服務(wù)器的WebSocket連接。
至此就完成了將libwebsockets庫編譯為x86架構(gòu)的步驟,希望本篇指南能成為各位小伙伴在嵌入式技術(shù)探索之旅上的得力助手。如果您在實(shí)踐過程中遇到任何問題,歡迎留言交流。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44961瀏覽量
648863 -
嵌入式
+關(guān)注
關(guān)注
5146文章
19598瀏覽量
316230 -
嵌入式開發(fā)
+關(guān)注
關(guān)注
18文章
1075瀏覽量
48717 -
嵌入式開發(fā)板
+關(guān)注
關(guān)注
5文章
90瀏覽量
19138
發(fā)布評(píng)論請(qǐng)先 登錄
ELF 1技術(shù)貼|如何在Ubuntu中編譯OpenCV庫

I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu中編譯OpenCV庫(X86架構(gòu))
x86架構(gòu)和arm架構(gòu)的區(qū)別
適用于x86架構(gòu)的快速啟動(dòng)步驟是什么?
ARM架構(gòu)的系統(tǒng)與X86架構(gòu)系統(tǒng)的特性有什么不同?
Powerpc架構(gòu)與X86架構(gòu)的區(qū)別
x86架構(gòu)的最大特色在哪
arm架構(gòu)和x86架構(gòu)有什么區(qū)別
X86架構(gòu)和ARM架構(gòu)

X86架構(gòu)和ARM架構(gòu),在工業(yè)領(lǐng)域的優(yōu)勢爭霸
一文看懂a(chǎn)rm架構(gòu)和x86架構(gòu)有什么區(qū)別

X86架構(gòu)無可取代 業(yè)界地位無法撼動(dòng)
X86架構(gòu)與Arm架構(gòu)區(qū)別
x86架構(gòu)工業(yè)主板解決方案
X86架構(gòu)與Arm架構(gòu)的區(qū)別

評(píng)論