windows下编译带rtmp的nginx1.19.1
1.创建文件夹objs/lib,将nginx-rtmp-module,openssl-1.0.2r,pcre-8.43,zlib-1.2.11copy进去
2.创建生成bulid.bat
auto/configure --with-cc=cl --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --with-cc-opt=-DFD_SETSIZE=1024 --with-openssl-opt=no-asm --with-select_module --with-openssl=objs/lib/openssl-1.0.2r --with-openssl-opt=no-asm --with-zlib=objs/lib/zlib-1.2.11 --with-pcre=objs/lib/pcre-8.43 --add-module=objs/lib/nginx-rtmp-module
3.打开msys.bat
4.在msys.bat界面进入nginx的build的目录下
5.执行build.bat,执行完后在objs/下可以生成makefile
6.打开Visual Studio命令提示(2010),执行命令nmake -f objs/Makefile,执行完后可生成nginx.exe
遇到的问题
1.下载的源码在src/os/下没有win32文件夹,也没有对应的win下需要使用的文件。
2.用msys.bat执行build.bat时报sed,command not found,将C:\MinGW\bin加入到环境变量并重启msys.bat
3.msys.bat执行nmake -f objs/Makefile 报windows.h没有定义,换vs命令提示窗口执行
4.nmake -f objs/Makefile 编译报错,新加的函数编译失败,对比旧的obj/makefile和新的obj/makefile将新加的几个文件加进去,重新编译,编译成功。