Windows下编译nginx-rtmp-module
http://nginx.org/en/docs/howto_build_on_win32.html
官网上的操作说明。
官网的方法Nginx编译方法,思路是一致的,只是有几个细节地方需要调整。
需要注意以下问题:
- Win10 操作系统下,貌似在编译OpenSSL的时候有问题。
- 使用sm for Windows 作为微软的masm 的替代。
一:下载以下工具,并依次安装。
1、 下载 VS2010+ VS2010 SP1 (C++编译环境)VS2015也可以。
2、 MSYS-1.0.11.exe
3、 ActivePerl-5.24.2.2403-MSWin32-x64-403863.exe
4、 mercurial-4.3.1-x64.msi
5、 nasm-2.12.02rc9-installer-x64.exe
6、 sed-4.2.1-setup.exe
7、 下载配套的所需库代码PCRE, zlib and OpenSSL libraries sources.
并且需要确保以上工具加入到了环境变量。
二、获取Nginx源代码
打开CMD命令,切换到Mercurial安装根目录,执行命令:
hg clone http://hg.nginx.org/nginx

下载成功后会在Mercurial安装目录下,创建nginx源代码文件夹。

三、添加依赖资源包
在nginx源代码分别创建objs\lib 文件夹,此处如此命名只是约定的习惯,可以不是这两个名称。并且将下载好的nginx-rtmp-module-master、openssl、pcre、zlib分别解压在lib文件夹下面。
以上动作可以按官网教程一样,使用MSYS使用CUI的方式。

结果如下图:

四、生成makefile文件,用于C++编译器
继续使用MSYS工具,返回到nginx源代码根目录,执行以下脚本:
auto/configure --with-cc=cl --builddir=objs --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 --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--http-scgi-temp-path=temp/scgi_temp \
--http-uwsgi-temp-path=temp/uwsgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.41 \
--with-zlib=objs/lib/zlib-1.2.11 --with-openssl=objs/lib/openssl-1.0.2k \
--with-select_module --with-http_ssl_module --add-module=objs/lib/nginx-rtmp-module

有如上三部分输出

最终结果,会在objs目录下生成Makefile文件,以及其他所依赖的代码。
五、OpenSSL的坑,
需要修改 nginx\auto\lib\openssl\makefile.msvc 文件。
将ms\do_ms 改为ms\do_nasm。
具体原因参看篇文章。
http://blog.csdn.net/felixking/article/details/51981794?utm_source=itdadao&utm_medium=referral

六、编译Nginx源码
使用VS2010命令工具,切换到Nginx根目录,执行nmake -f objs/Makefile 命令。

【我一开始在Wi10上使用VS2015的开发者工具,结果依然有问题,具体原因没有分析出来,核心错误如下:
perl util/copy.pl "inc32\openssl\*.[ch]" "D:\Program Files\Mercurial\nginx\objs\lib\openssl-1.0.2k\openssl\include\openssl"
Destination must be a directory at util/copy.pl line 39.
推测是Win10版本都有这个异常】

最后改为Win7+VS2010。
不算漫长的等待之后,激动人心的时刻就到来了。编译成功。

七、创建运行基础文件夹
在nginx.exe所在文件夹下创建创建conf,logs,temp,tmp目录,可将nginx-rtmp-module\test下的nginx.conf文件复制到conf目录下,启动nginx,基础的RTMP流媒体服务搭建完成。

Windows下编译nginx-rtmp-module的更多相关文章
- windows下编译nginx+nginx_rtmp_modue(vs2013)
阅读官方编译windows版本的方法 http://nginx.org/en/docs/howto_build_on_win32.html 我的环境 Windows 7 Ultimate 64,Vis ...
- Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤
转载自: http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍: Nginx ("engine x")是一个 ...
- windows下编译调试nginx
typora-copy-images-to: image windows下编译调试nginx linux使用gdb跟踪代码效率不高,在通过跟踪代码进行源码分析,与定位复杂逻辑问题时,如果有一个简单易用 ...
- Windows下搭建Nginx图片服务器
在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- windows 下使用Nginx替代apache作为服务器
说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...
- windows下安装nginx
说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...
- windows 下配置 Nginx 常见问题(转)
windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
随机推荐
- HDU 2665 Kth number(划分树)
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 暑假练习赛 006 E Vanya and Label(数学)
Vanya and LabelCrawling in process... Crawling failed Time Limit:1000MS Memory Limit:262144KB ...
- setup 命令中防火墙配置选项无法打开
故障提示 1.1 如何让setup 命令中防火墙配置生效 1.1.1 CentOS系统找不到setup命令工具的解决方法 yum -y install setuptool #安装setup命令工具 y ...
- Flex布局:实现左右两列自伸缩撑满效果的
目前测试支持的浏览器: 兼容IE10及以上.Chrom.Firefox浏览器. 假如考虑IE10以下浏览器,可以考虑其他写法. 话不多说,上代码: <div style="back ...
- Cache 和 Buffer 都是缓存,主要区别是什么?
存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址.当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址.如果存有该地址,则将数据返回处理器;如果没有保存该地址 ...
- C# 中操作API
作为初学者来说,在C#中使用API确是一件令人头疼的问题.在使用API之间你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 一切从简单开始,复杂的大家一时不能接 ...
- 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
1 }
- PullToRefreshListView插件初次进入页面自动刷新
只要将PullToRefreshListView源码中的: @Override protected void onRefreshing(final boolean doScroll) { /** * ...
- python操作Mysql基础
import pymysql #不修改数据 def no_data_change(): db=pymysql.connect('host','user','pw','db_name') #host,u ...
- Android开发之漫漫长途 番外篇——自定义View的各种姿势1
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...