pingostack / pingos

Based on the NGINX/RTMP/HTTP-FLV/HTTP-TS/HLS/HLS+/DASH/H.264/H.265/AAC/MP3/Live/Record/VOD/Push/Pull/Multiple Processes/Dynamic Configuration/Configuration Variables/Console Interface/Notify
https://pingos.io
BSD 3-Clause "New" or "Revised" License
985 stars 273 forks source link

您好,树莓派4B官方系统,安装报错 #35

Open wufujun2000 opened 3 years ago

wufujun2000 commented 3 years ago

您好,我尝试在树莓派4B上安装服务,安装过程参照您的说明,运行release.sh脚本时,使用sudo授权 sudo ./release.sh -i 安装过程报如下错误,能帮我看看这是什么问题,如何解决吗?

In file included from ../modules/nginx-rtmp-module/ngx_live_relay.h:10,
                 from ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:6:
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c: In function ‘ngx_live_relay_httpflv_parse’:
src/core/ngx_core.h:102:37: error: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                     ^
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
src/core/ngx_core.h:102:47: error: operand of ?: changes signedness from ‘int’ to ‘uint32_t’ {aka ‘unsigned int’} due to unsignedness of other operand [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                               ^~~~~~
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I ../modules/nginx-client-module -I ../modules/nginx-multiport-module -I ../modules/nginx-toolkit-module  -I src/core -I src/event -I src/event/modules -I src/os/unix -I ../modules/nginx-rtmp-module -I objs -I src/http -I src/http/modules -I ../modules/nginx-rtmp-module -I ../modules/nginx-rtmp-module/http -I ../modules/nginx-rtmp-module/hls -I ../modules/nginx-rtmp-module/mpegts \
    -o objs/addon/nginx-rtmp-module/ngx_live_relay_simple.o \
    ../modules/nginx-rtmp-module/ngx_live_relay_simple.c
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1565:objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o] 错误 1
make[1]: *** 正在等待未完成的任务....
make[1]: 离开目录“/home/pi/Tools/pingos/nginx”
make: *** [Makefile:8:build] 错误 2
make -f objs/Makefile install
make[1]: 进入目录“/home/pi/Tools/pingos/nginx”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I ../modules/nginx-client-module -I ../modules/nginx-multiport-module -I ../modules/nginx-toolkit-module  -I src/core -I src/event -I src/event/modules -I src/os/unix -I ../modules/nginx-rtmp-module -I objs -I src/http -I src/http/modules -I ../modules/nginx-rtmp-module -I ../modules/nginx-rtmp-module/http -I ../modules/nginx-rtmp-module/hls -I ../modules/nginx-rtmp-module/mpegts \
    -o objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o \
    ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c
In file included from ../modules/nginx-rtmp-module/ngx_live_relay.h:10,
                 from ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:6:
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c: In function ‘ngx_live_relay_httpflv_parse’:
src/core/ngx_core.h:102:37: error: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                     ^
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
src/core/ngx_core.h:102:47: error: operand of ?: changes signedness from ‘int’ to ‘uint32_t’ {aka ‘unsigned int’} due to unsignedness of other operand [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                               ^~~~~~
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1565:objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o] 错误 1
make[1]: 离开目录“/home/pi/Tools/pingos/nginx”
im-pingo commented 3 years ago

您好,我尝试在树莓派4B上安装服务,安装过程参照您的说明,运行release.sh脚本时,使用sudo授权 sudo ./release.sh -i 安装过程报如下错误,能帮我看看这是什么问题,如何解决吗?

In file included from ../modules/nginx-rtmp-module/ngx_live_relay.h:10,
                 from ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:6:
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c: In function ‘ngx_live_relay_httpflv_parse’:
src/core/ngx_core.h:102:37: error: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                     ^
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
src/core/ngx_core.h:102:47: error: operand of ?: changes signedness from ‘int’ to ‘uint32_t’ {aka ‘unsigned int’} due to unsignedness of other operand [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                               ^~~~~~
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I ../modules/nginx-client-module -I ../modules/nginx-multiport-module -I ../modules/nginx-toolkit-module  -I src/core -I src/event -I src/event/modules -I src/os/unix -I ../modules/nginx-rtmp-module -I objs -I src/http -I src/http/modules -I ../modules/nginx-rtmp-module -I ../modules/nginx-rtmp-module/http -I ../modules/nginx-rtmp-module/hls -I ../modules/nginx-rtmp-module/mpegts \
  -o objs/addon/nginx-rtmp-module/ngx_live_relay_simple.o \
  ../modules/nginx-rtmp-module/ngx_live_relay_simple.c
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1565:objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o] 错误 1
make[1]: *** 正在等待未完成的任务....
make[1]: 离开目录“/home/pi/Tools/pingos/nginx”
make: *** [Makefile:8:build] 错误 2
make -f objs/Makefile install
make[1]: 进入目录“/home/pi/Tools/pingos/nginx”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I ../modules/nginx-client-module -I ../modules/nginx-multiport-module -I ../modules/nginx-toolkit-module  -I src/core -I src/event -I src/event/modules -I src/os/unix -I ../modules/nginx-rtmp-module -I objs -I src/http -I src/http/modules -I ../modules/nginx-rtmp-module -I ../modules/nginx-rtmp-module/http -I ../modules/nginx-rtmp-module/hls -I ../modules/nginx-rtmp-module/mpegts \
  -o objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o \
  ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c
In file included from ../modules/nginx-rtmp-module/ngx_live_relay.h:10,
                 from ../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:6:
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c: In function ‘ngx_live_relay_httpflv_parse’:
src/core/ngx_core.h:102:37: error: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                     ^
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
src/core/ngx_core.h:102:47: error: operand of ?: changes signedness from ‘int’ to ‘uint32_t’ {aka ‘unsigned int’} due to unsignedness of other operand [-Werror=sign-compare]
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
                                               ^~~~~~
../modules/nginx-rtmp-module/ngx_live_relay_httpflv.c:318:23: note: in expansion of macro ‘ngx_min’
                 len = ngx_min(st->len, b->last - p);
                       ^~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1565:objs/addon/nginx-rtmp-module/ngx_live_relay_httpflv.o] 错误 1
make[1]: 离开目录“/home/pi/Tools/pingos/nginx”

ngx_min(st->len, b->last - p);强制转换一下类型,ngx_min((uint32_t)st->len, (uint32_t) (b->last - p));

sxjpage commented 3 years ago

打开 nginx的安装目录/objs/Makefile,去掉CFLAGS中的-Werror,再重新make -Wall 表示打开gcc的所有警告 -Werror,它要求gcc将所有的警告当成错误进行处理

rubyist1982 commented 3 years ago

上数方法不行啊,启动nginx 报告段错误

xiazi718 commented 2 years ago

我也都试了一遍,上面两个办法都没有解决我的问题 pi@raspberrypi:/usr/local/pingos $ sudo ./sbin/nginx Segmentation fault

gabacai commented 1 year ago

启动nginx报Segmentation fault随后失败。