人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

nginx?rtmp模塊編譯?arm版本的問題

發(fā)布日期:2022-02-01 00:59 | 文章來源:腳本之家

今天搞了一天,終于把nginx增加支持rtmp模塊編譯出來了,其中遇到了很多問題,記錄下這篇文章,希望可以幫到遇到此類問題的同學(xué)。

一、準(zhǔn)備工作:

1,下載nginx源碼:wget http://xiazai.jb51.net/202112/yuanma/nginx_jb51.rar

2,下載依賴庫libpcre.a源碼:wget?http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.39.tar.gz

3,下載依賴庫libz.a源碼:?wget? http://xiazai.jb51.net/202112/yuanma/pcre_jb51.rar

4,下載rtmp模塊源碼:GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server

前三個庫源碼下載完成后,都進(jìn)行解壓。

二、源碼編譯

pcre庫和libz庫都不用單獨編譯,在編譯nginx時添加模塊時一起編譯。

1,configure 配置

cd nginx-1.20.2 //切換到nginx源碼目錄下
./configure --prefix=/usr/sbin --add-module=/home/tianyexing/Documents/tools/nginx_rtmp/nginx-rtmp-module-master --with-http_ssl_module --with-debug --with-pcre=/home/tianyexing/Documents/tools/pcre/pcre-8.39 --with-zlib=/home/tianyexing/Documents/tools/zlib/zlib-1.2.11
 
// --prefix=/usr/sbin  指定安裝目錄,最后install時生成的程序放在這個目錄下
// --add-module=/home/tianyexing/Documents/tools/nginx_rtmp/nginx-rtmp-module-master  編譯rtmp模塊,這個目錄是上面下載源碼后解壓的目錄
// --with-pcre=/home/tianyexing/Documents/tools/pcre/pcre-8.39 編譯pcre模塊,這個目錄是上面下載源碼后解壓的目錄
// --with-zlib=/home/tianyexing/Documents/tools/zlib/zlib-1.2.11 編譯zlib模塊,這個目錄是上面下載源碼后解壓的目錄

因為我要編譯的arm-himix200-linux版本,但nginx源碼目錄下的configure不支持--host,然后用

--with-cc=arm-himix200-linux-gcc時也會出錯,于是只能選擇手動修改(修改點下面會講到)。執(zhí)行后會在當(dāng)前目錄下生成objs和Makefile。

1) 修改objs/Makefile

2) 修改nginx-1.20.2/auto/cc/conf文件,如:

?3) 修改?nginx-1.20.2/auto/types/sizeof ,如:

其他修改可以去搜索一下,因為修改好幾個已經(jīng)不記得了。

2,編譯錯誤

直接在nginx源碼目錄下make就行,因為它里面執(zhí)行的就是objs/Makefile

1)找不到openssl/ssl.h頭文件,如:

?系統(tǒng)中是已經(jīng)有openssl/ssl.h文件的,是系統(tǒng)目錄/usr/include下

但編譯時就是提示找不到,不知是否跟編譯arm版本有關(guān),因為我正好有這個arm版本的openssl頭文件,所以這里沒去糾結(jié),把別處的openssl目錄拷貝過來直接用了,不過添加頭文件目錄后,需要修改objs/Makefile,我新加的頭文件目錄是在nginx源碼目錄src下,修改如下:

這個CORE_INCS是編譯nginx要用到的頭文件。

這個是其他模塊,nginx-rtmp, pcre, zlib 可能用到的頭文件目錄。

2) IPv6問題

?

提示找不到這個定義,但這個定義在系統(tǒng)是有的,?這里也不糾結(jié),不用ipv6,所把相關(guān)的代碼注釋掉了。

3)Archive has no index; run ranlib to add? one ---- 庫平臺不匹配問題

?因為這當(dāng)中編譯過很多次,x86版本,arm版本都編譯過,然后并沒有make clean,這里用了之前的x86版本的庫,所以這里提示錯誤了,因為我要編譯arm-himix200-linux版本,查看庫信息如:

?所以需要make clean,然后再執(zhí)行上面的configure 重新生成Makefile。

4) 找不到ssl庫和crypto庫

objs/Makefile 里有如下鏈接

最后鏈接時出錯?

?

這個arm版本的庫,我之前編譯過的,然后直接修改成絕對路徑。若是沒有這兩個庫google一下。

?

最終編譯出我arm版本,x86版本。

三、目標(biāo)板上執(zhí)行

?拷貝到arm版上執(zhí)行時,失敗了,但沒有提示信息,結(jié)果是用?nginx -s reload得出錯誤信息,如:

?因為在configure配置時,是指定安裝目錄--prefix=/usr/sbin,在編譯完成后,會在/usr/sbin下新建了三個目錄 sbin、conf、logs,各目錄如:

?于是在arm板子上對應(yīng)的新建sbin, conf, logs目錄,并將其目錄下的文件全部拷貝過去,結(jié)果運行成功了:

已經(jīng)看到在監(jiān)聽1935端口。

之前也編譯出來過arm版本,也是運行不成功,因為configure時prefix指定安裝路徑是pc上一個目錄,結(jié)果也是出現(xiàn)如上的open()的錯誤。那如果configure配置時,--prefix指定的目錄目標(biāo)板子上沒有,那就是運行不成功的,這個要怎么修改呢?還沒查到,有知道的同學(xué)麻煩告知一下。

到此這篇關(guān)于nginx rtmp模塊編譯 arm版本的文章就介紹到這了,更多相關(guān)nginx rtmp模塊內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

國外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部