http://nginx.org/en/docs/howto_build_on_win32.html

官网上的操作说明。

官网的方法Nginx编译方法,思路是一致的,只是有几个细节地方需要调整。

需要注意以下问题:

  1. Win10 操作系统下,貌似在编译OpenSSL的时候有问题。
  2. 使用sm for Windows 作为微软的masm 的替代。

一:下载以下工具,并依次安装。

1、  下载 VS2010VS2010 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、  下载配套的所需库代码PCREzlib 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的更多相关文章

  1. windows下编译nginx+nginx_rtmp_modue(vs2013)

    阅读官方编译windows版本的方法 http://nginx.org/en/docs/howto_build_on_win32.html 我的环境 Windows 7 Ultimate 64,Vis ...

  2. Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤

    转载自: http://apps.hi.baidu.com/share/detail/11192699#content Nginx介绍: Nginx ("engine x")是一个 ...

  3. windows下编译调试nginx

    typora-copy-images-to: image windows下编译调试nginx linux使用gdb跟踪代码效率不高,在通过跟踪代码进行源码分析,与定位复杂逻辑问题时,如果有一个简单易用 ...

  4. Windows下搭建Nginx图片服务器

    在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...

  5. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  6. windows 下使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  7. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  8. windows 下配置 Nginx 常见问题(转)

    windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...

  9. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  10. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

随机推荐

  1. HDU 2665 Kth number(划分树)

    Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. 暑假练习赛 006 E Vanya and Label(数学)

    Vanya and LabelCrawling in process... Crawling failed Time Limit:1000MS     Memory Limit:262144KB    ...

  3. setup 命令中防火墙配置选项无法打开

    故障提示 1.1 如何让setup 命令中防火墙配置生效 1.1.1 CentOS系统找不到setup命令工具的解决方法 yum -y install setuptool #安装setup命令工具 y ...

  4. Flex布局:实现左右两列自伸缩撑满效果的

    目前测试支持的浏览器: 兼容IE10及以上.Chrom.Firefox浏览器. 假如考虑IE10以下浏览器,可以考虑其他写法. 话不多说,上代码:   <div style="back ...

  5. Cache 和 Buffer 都是缓存,主要区别是什么?

    存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址.当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址.如果存有该地址,则将数据返回处理器;如果没有保存该地址 ...

  6. C# 中操作API

    作为初学者来说,在C#中使用API确是一件令人头疼的问题.在使用API之间你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 一切从简单开始,复杂的大家一时不能接 ...

  7. 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮

    1                                                    }

  8. PullToRefreshListView插件初次进入页面自动刷新

    只要将PullToRefreshListView源码中的: @Override protected void onRefreshing(final boolean doScroll) { /** * ...

  9. python操作Mysql基础

    import pymysql #不修改数据 def no_data_change(): db=pymysql.connect('host','user','pw','db_name') #host,u ...

  10. Android开发之漫漫长途 番外篇——自定义View的各种姿势1

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...