在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何移植libwebsockets

ElfBoard ? 2024-06-17 13:53 ? 次閱讀

libwebsockets是一個高性能的開源C語言庫,專為實現(xiàn)WebSocket協(xié)議及相關(guān)的HTTP協(xié)議而設(shè)計。它不僅使開發(fā)者能夠在客戶端與服務(wù)器端輕松構(gòu)建WebSocket連接,還可以用作標(biāo)準(zhǔn)HTTP服務(wù)器。WebSocket是一種在單個TCP連接上進(jìn)行全雙工通信的協(xié)議,可以促進(jìn)瀏覽器與服務(wù)器間實時、互動數(shù)據(jù)交換的能力,為現(xiàn)代網(wǎng)絡(luò)應(yīng)用提供了強(qiáng)大的支持。

libwebsockets在處理如HTTPS和WSS等安全連接時,依賴于OpenSSL提供的強(qiáng)大加密功能來保障數(shù)據(jù)的安全性。同時,為了提高網(wǎng)絡(luò)傳輸效率,libwebsockets還利用ZLib庫進(jìn)行數(shù)據(jù)壓縮。因此,在交叉編譯libwebsockets庫之前需要先交叉編譯OpenSSL和ZLib這兩個依賴庫。接下來,將跟各位小伙伴詳述將這三大庫移植至ELF 1開發(fā)板的具體步驟。

開發(fā)環(huán)境操作系統(tǒng):Ubuntu18.04

交叉編譯鏈:arm-poky-linux-gnueabi-gcc

內(nèi)核版本:Linux4.1.15

交叉編譯OpenSSL

1、下載源碼https://www.openssl.org/source/old/1.1.1/
2、拷貝openssl-1.1.1c.tar.gz到開發(fā)環(huán)境/home/elf/work目錄下解壓

elf@ubuntu:~/work$ tar -zxvf openssl-1.1.1c.tar.gz

3、進(jìn)入openssl-1.1.1c目錄,執(zhí)行./config生成Makefile文件

elf@ubuntu:~/work$ cd openssl-1.1.1c/ elf@ubuntu:~/work/openssl-1.1.1c$ ./config no-asm shared --prefix=/home/elf/work/openssl-1.1.1c/install

4、修改Makefile

第8行修改為:

8 PLATFORM=linux-armv7

第124行修改為:

124 CNF_CFLAGS=-pthread

第125行修改為:

125 CNF_CXXFLAGS=-std=c++11 -pthread

注釋掉90-92行、99行、103行、105-106行:

90 #CROSS_COMPILE= 91 #CC=$(CROSS_COMPILE)gcc 92 #CXX=$(CROSS_COMPILE)g++ 99 #MAKEDEPEND=$(CROSS_COMPILE)gcc 103 #AR=$(CROSS_COMPILE)ar 105 #RANLIB=$(CROSS_COMPILE)ranlib 106 #RC= $(CROSS_COMPILE)windres

5、設(shè)置環(huán)境變量

elf@ubuntu:~/work/openssl-1.1.1c$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

6、編譯

elf@ubuntu:~/work/openssl-1.1.1c$ make

7、安裝

elf@ubuntu:~/work/openssl-1.1.1c$ make install

8、在/home/elf/work/openssl-1.1.1c目錄下會生成一個install目錄

elf@ubuntu:~/work/openssl-1.1.1c/install$ ls bin include lib share ssl

9、將install目錄下的文件打包

elf@ubuntu:~/work/openssl-1.1.1c/install$ tar -cvjf openssl.tar.bz2 *

10、拷貝openssl.tar.bz2到ELF 1開發(fā)板根目錄下解壓

root@ELF1:~# cd / root@ELF1:/# cp run/media/sda1/openssl.tar.bz2 . root@ELF1:/# tar -xvf openssl.tar.bz2

交叉編譯ZLib

1、下載源碼https://zlib.net/
2、將zlib-1.3.1.tar.gz拷貝到開發(fā)環(huán)境/home/elf/work目錄下解壓

elf@ubuntu:~/work$ tar xvf zlib-1.3.1.tar.gz

3、進(jìn)入zlib源碼目錄內(nèi),創(chuàng)建一個install文件夾用來放置編譯出來的文件

elf@ubuntu:~/work$ cd zlib-1.3.1 elf@ubuntu:~/work/zlib-1.3.1$ mkdir install

4、設(shè)置環(huán)境變量

elf@ubuntu:~/work/zlib-1.3.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

5、生成Makefile

elf@ubuntu:~/work/zlib-1.3.1$ ./configure --prefix=$(pwd)/install

6、編譯

elf@ubuntu:~/work/zlib-1.3.1$ make

7、安裝

elf@ubuntu:~/work/zlib-1.3.1$ make install

8、在install目錄下生成文件

elf@ubuntu:~/work/zlib-1.3.1/install$ ls include lib share

9、將install目錄下的文件打包

elf@ubuntu:~/work/zlib-1.3.1/install$ tar -cvjf zlib.tar.bz2 *

10、拷貝zlib.tar.bz2到ELF 1開發(fā)板根目錄下解壓

root@ELF1:~# cd / root@ELF1:/# cp run/media/sda1/zlib.tar.bz2 . root@ELF1:/# tar -xvf zlib.tar.bz2

交叉編譯libwebsockets

1、下載源碼https://github.com/warmcat/libwebsockets

2、將libwebsockets-main.zip拷貝到開發(fā)環(huán)境/home/elf/work目錄下解壓

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

3、新建目錄

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

4、修改CMakeLists.txt文件

elf@ubuntu:~/work/libwebsockets-main$ cd build elf@ubuntu:~/work/libwebsockets-main/build$ vi ../CMakeLists.txt

在第74行project(libwebsockets C)下面添加如下內(nèi)容

#設(shè)置openssl的庫頭文件 set(OPENSSL_INCLUDE_DIR "/home/elf/work/openssl-1.1.1c/install/include/") #設(shè)置openssl的庫路徑 set(OPENSSL_SSL_LIBRARY "/home/elf/work/openssl-1.1.1c/install/lib/libssl.so") #設(shè)置openssl的工具庫 set(OPENSSL_CRYPTO_LIBRARY "/home/elf/work/openssl-1.1.1c/install/lib/libcrypto.so") #設(shè)置zlib的庫頭文件 set(ZLIB_INCLUDE_DIR "/home/elf/work/zlib-1.3.1/install/include/") #設(shè)置openssl的庫路徑 set(ZLIB_LIBRARY "/home/elf/work/zlib-1.3.1/install/lib/libz.so") #設(shè)置生成庫的安裝路徑 SET(CMAKE_INSTALL_PREFIX "/home/elf/work/libwebsockets-main/install")

添加效果如下圖所示

wKgaomZvzaiAem2kAAgs9OodtL0362.png

在第1012行指定libcap庫的路徑,否則編譯報錯

1011 if (LWS_HAVE_LIBCAP) 1012 set(LIBCAP_LIBRARIES /opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/lib/libcap.so) 1013 list(APPEND LIB_LIST_AT_END ${LIBCAP_LIBRARIES} ) 1014 endif()

wKgaomZvzdaAO2QlAAa253DHSCc379.png

6、執(zhí)行環(huán)境變量

elf@ubuntu:~/work/libwebsockets-main/build$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

7、生成Makefile

elf@ubuntu:~/work/libwebsockets-main/build$ sudo apt-get update elf@ubuntu:~/work/libwebsockets-main/build$ sudo apt-get install cmake elf@ubuntu:~/work/libwebsockets-main/build$ cmake ..

8、編譯

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

9、安裝

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

10、將install目錄下的文件打包

elf@ubuntu:~/work/libwebsockets-main/build$ cd ../install/ elf@ubuntu:~/work/libwebsockets-main/install$ ls bin include lib share elf@ubuntu:~/work/libwebsockets-main/install$ tar -cvjf libwebsockets.tar.bz2 *

11、拷貝libwebsockets.tar.bz2到ELF 1開發(fā)板根目錄下解壓

root@ELF1:~# cd / root@ELF1:/# cp run/media/sda1/libwebsockets.tar.bz2 . root@ELF1:/# tar -xvf libwebsockets.tar.bz2

至此,OpenSSL、ZLib以及l(fā)ibwebsockets這三個核心庫已成功部署至ELF 1開發(fā)板,期望這一過程和成果能為正在探索嵌入式系統(tǒng)領(lǐng)域的學(xué)習(xí)者提供實質(zhì)性的幫助與啟發(fā),助力大家在技術(shù)的征途上不斷前行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5113

    文章

    19337

    瀏覽量

    311257
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11385

    瀏覽量

    211692
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5263

    瀏覽量

    99765
  • 學(xué)習(xí)開發(fā)板

    關(guān)注

    0

    文章

    10

    瀏覽量

    363
收藏 0人收藏

    評論

    相關(guān)推薦

    ElfBoard技術(shù)貼|如何將libwebsockets庫編譯為x86架構(gòu)

    在之前的文章中,我們已經(jīng)詳細(xì)介紹了如何交叉編譯libwebsockets并將其部署到ELF1開發(fā)板上。然而在調(diào)試階段,發(fā)現(xiàn)將libwebsockets在Ubuntu環(huán)境下編譯為x86架構(gòu)可能更為方便
    的頭像 發(fā)表于 07-10 09:38 ?1414次閱讀
    ElfBoard技術(shù)貼|如何將<b class='flag-5'>libwebsockets</b>庫編譯為x86架構(gòu)

    【W(wǎng)RTnode2R試用體驗】隨身數(shù)據(jù)服務(wù)器之 libwebsocket

    用起來是挺爽的,但是,可折騰性就沒那么高了。本文做 gameserver 使用的 libwebsockets也在里面集成,不過不是官方的完整版本。libwebsockets 同時需要依賴 json-c
    發(fā)表于 12-10 13:53

    Intel Edison編譯image報錯

    /work/core2-32-poky-linux/libwebsockets/1.23-r0/image/usr/bin/libwebsockets-test-client | -- Installing
    發(fā)表于 07-09 05:17

    HHARM9200移植2.6內(nèi)核移植文檔

    HHARM9200移植2.6內(nèi)核移植文檔
    發(fā)表于 03-01 16:04 ?37次下載
    HHARM9200<b class='flag-5'>移植</b>2.6內(nèi)核<b class='flag-5'>移植</b>文檔

    STM32_UCOS移植

    STM32 UCOS移植 STM32 UCOS移植 STM32 UCOS移植 STM32 UCOS移植
    發(fā)表于 07-13 17:31 ?30次下載

    ucosIII移植教程

    ucosIII移植教程 工作很久了,一直在用ucosIII,以前移植過ucosII,也看過別人寫的教程移植過ucosIII,但是一直想自己移植一下ucosIII,然后把自己的
    發(fā)表于 11-28 14:06 ?94次下載

    什么是可移植?C語言是如何做到可移植的?

    什么是可移植?如何才能可移植?C語言是如何做到可移植的?對于初學(xué)者,可移植可能是一個經(jīng)常遇到卻很神秘的詞。
    的頭像 發(fā)表于 03-29 14:41 ?7295次閱讀

    移植RT-Thread的原理與方法

    大家好我是驚覺。是的,失蹤人口回來了。最近參加了rt-thread的國產(chǎn)MCU移植活動,移植rt-thread到華大的HC32L196。rtt論壇中已有許多介紹移植到各種平臺的文章,詳細(xì)講述
    的頭像 發(fā)表于 09-17 09:41 ?8136次閱讀

    【國產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano

    【國產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
    發(fā)表于 11-18 18:51 ?66次下載
    【國產(chǎn)MCU<b class='flag-5'>移植</b>】HC32F460基于Keil MDK <b class='flag-5'>移植</b> RT-Thread Nano

    轉(zhuǎn)發(fā):stm32 移植 freertos

    轉(zhuǎn)發(fā):stm32 移植 freertos
    發(fā)表于 11-20 12:36 ?14次下載
    轉(zhuǎn)發(fā):stm32 <b class='flag-5'>移植</b> freertos

    【國產(chǎn)MCU移植移植RT-Thread到國產(chǎn)芯片HC32F460PETB

    【國產(chǎn)MCU移植移植RT-Thread到國產(chǎn)芯片HC32F460PETB
    發(fā)表于 11-23 18:06 ?37次下載
    【國產(chǎn)MCU<b class='flag-5'>移植</b>】<b class='flag-5'>移植</b>RT-Thread到國產(chǎn)芯片HC32F460PETB

    IAR移植FreeRTOS

    IAR移植FreeRTOS之前寫了移植在MDK的文章,之后試著移植到IAR上(IAR的在線調(diào)試功能用著比MDK順手,在線調(diào)試實時查看大型數(shù)組也不會卡死,MDK查看數(shù)組若是太大會很卡)。發(fā)現(xiàn)有一些
    發(fā)表于 12-03 10:36 ?15次下載
    IAR<b class='flag-5'>移植</b>FreeRTOS

    FreeRTOS移植—基于STM32

    FreeRTOS移植—基于STM32
    發(fā)表于 12-04 12:51 ?18次下載
    FreeRTOS<b class='flag-5'>移植</b>—基于STM32

    移植USB鼠標(biāo)實驗

    移植USB鼠標(biāo)實驗這是我在csdn上的第一篇博客,這次主要是想記錄一下我之前做的USB鼠標(biāo)實驗移植的過程。移植過程與正點原子USB鼠標(biāo)實驗教程類似,注意移植時,如果遇到串口初始化等的函
    發(fā)表于 12-28 19:59 ?12次下載
    <b class='flag-5'>移植</b>USB鼠標(biāo)實驗

    OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源

    OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源
    的頭像 發(fā)表于 02-08 10:58 ?2625次閱讀
    OpenHarmony富設(shè)備<b class='flag-5'>移植</b>指南(2)從postmarketOS獲取<b class='flag-5'>移植</b>資源
    主站蜘蛛池模板: 午夜影院毛片 | 色爱区综合五月激情 | 在线观看免费av网站 | 97色婷婷成人综合在线观看 | 国产一区精品视频 | 大学生一级特黄的免费大片视频 | 丁香四月婷婷 | 国产嫩草影院精品免费网址 | 美女张开腿露出尿口让男人桶 | 在线免费观看h视频 | 51国产午夜精品免费视频 | 欧美一级片在线免费观看 | 天天操2023 | 欧美一级片手机在线观看 | 91夫妻视频| 日本高清视频在线www色 | 久久久久久国产精品免费 | 欧美日韩看片 | 黄页网站在线播放 | 五月婷婷深爱五月 | 色综合天天综合网看在线影院 | 天天做天天玩天天爽天天 | 天堂电影在线观看免费入口 | 国产看午夜精品理论片 | 在线观看视频一区二区 | 在线观看精品国产福利片100 | 国产综合视频 | 日本在线视频一区二区 | 四虎网站在线播放 | videos另类重口tv | 人日人操| 一色桃子juy774在线播放 | 婷婷久久综合九色综合98 | 国产主播精品在线 | 色综合视频在线 | 午夜国产片 | 欧美成人aaaa免费高清 | 国产老师的丝袜在线看 | 亚洲日韩色综合视频 | 亚洲国产精品国产自在在线 | 午夜片 飘香香影院 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品