一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - nginx rtmp模塊編譯 arm版本的問題

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

2022-01-18 19:30原十 Nginx

這篇文章主要介紹了nginx rtmp模塊編譯 arm版本的問題,pcre庫和libz庫都不用單獨編譯,在編譯nginx時添加模塊時一起編譯,需要的朋友可以參考下

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

一、準備工作:

1,下載nginx源碼:wget http://nginx.org/download/nginx-1.20.2.tar.gz

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

3,下載依賴庫libz.a源碼: wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz

4,下載rtmp模塊源碼:github - arut/nginx-rtmp-module: nginx-based media streaming server

前三個庫源碼下載完成后,都進行解壓。

二、源碼編譯

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

1,configure 配置

?
1
2
3
4
5
6
7
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時也會出錯,于是只能選擇手動修改(修改點下面會講到)。執行后會在當前目錄下生成objs和makefile。

1) 修改objs/makefile

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

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

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

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

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

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

2,編譯錯誤

直接在nginx源碼目錄下make就行,因為它里面執行的就是objs/makefile

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

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

 系統中是已經有openssl/ssl.h文件的,是系統目錄/usr/include下

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

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

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

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

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

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

2) ipv6問題

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

提示找不到這個定義,但這個定義在系統是有的, 這里也不糾結,不用ipv6,所把相關的代碼注釋掉了。

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

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

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

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

 所以需要make clean,然后再執行上面的configure 重新生成makefile。

4) 找不到ssl庫和crypto庫

objs/makefile 里有如下鏈接

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

最后鏈接時出錯 

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

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

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

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

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

三、目標板上執行

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

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

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

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

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

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

已經看到在監聽1935端口。

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

到此這篇關于nginx rtmp模塊編譯 arm版本的文章就介紹到這了,更多相關nginx rtmp模塊內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/tianyexing2008/article/details/122149109

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品毛片va一区二区三区 | 日本黄色一区 | 69japanese日本100 6969精品视频在线观看 | 精品视频免费在线 | 我的男友是消防员在线观看 | 日本深夜影院 | 洗濯屋H纯肉动漫在线观看 武侠艳妇屈辱的张开双腿 午夜在线观看免费观看 视频 | 国产高清免费午夜在线视频 | 青青青国产在线观看 | 国产一级黄色网 | 污到你怀疑人生 | 免费看视频高清在线观看 | 四虎精品永久免费 | 青丝视频免费版在线看 | 四虎国产 | 亚洲 欧美 清纯 校园 另类 | 西西人体大胆啪啪私拍色约约 | 久久综合中文字幕佐佐木希 | 99ri在线精品视频 | 丝瓜黄瓜茄子西红柿秋葵榴莲 | 国产免费资源高清小视频在线观看 | 国产亚洲精aa在线观看不卡 | 免费观看视频在线 | 操男孩| 顶级尤物极品女神福利视频 | 99国产精品热久久久久久夜夜嗨 | 50度灰破解版v5.7.0 | 我与旗袍老师疯狂床震 | 帅小伙和警官同性3p | 亚洲精品成人 | 亚洲乱亚洲乱妇41p国产成人 | 成人高辣h视频一区二区在线观看 | 天天草天天 | 成年人免费观看的视频 | 特黄级 | 亚洲AV久久无码精品九号软件 | 亚洲天堂成人在线观看 | 秋霞理论最新三级理论最 | 嫩模被黑人粗大挺进 | 97福利社 | 毛片a区 |