在Windows中編譯Nginx源碼

在MinGW32下使用gcc編譯Nginx源碼 nginx

一、 打開MinGW32並切換到當前代碼目錄 shell

二、./auto/configure –prefix=」c:/nginx」 –with-cc-opt=」-D FD_SETSIZE=4096 -D __NO_MINGW_LFS -D __WATCOMC__」 –without-http_rewrite_module –without-http_gzip_module api

因爲是從SVN庫中下載的源碼,主目錄中不存在configure文件,因此使用/auto/configure。 ui

–prefix=」c:/nginx」是Nginx的安裝目錄,注意必定要寫路徑中的斜槓,必定要是「/」 code

-D FD_SETSIZE=4096是爲了不出現運行時的錯誤提示 ip

-D __NO_MINGW_LFS是爲了不編譯時出現ssize_t、off_t類型錯誤 源碼

-D __WATCOMC__是爲了不編譯時出現Nginx shmtx錯誤 it

因爲是簡單示例,採用–without-http_rewrite_module、–without-http_gzip_module避免Nginx依賴於其餘庫 io

三、更改objs/Makefile 編譯

去除objs/Makefile中的-Werror,忽略將警告當成錯誤提示。

在objs/Makefile中查找advapi32.lib、ws2_32.lib,並補全路徑,改成:」C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\advapi32.lib」 「C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\ws2_32.lib」

四、make

五、make install

此時Nginx便安裝到了C:/nginx目錄下。

在MinGW32下使用VC編譯Nginx源碼

一、 打開MinGW32並切換到當前代碼目錄

二、 export PATH=$PATH:」C:\Program Files\Microsoft Visual Studio 10.0\VC\bin」:」C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE」:」C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin」

設置當前的環境變量,注意路徑中的斜槓,必定要使用「\」

三、./auto/configure –prefix=」c:/nginx」 –with-cc=」cl」 –with-cc-opt=」-D FD_SETSIZE=4096 -I \」C:/Program Files/Microsoft SDKs/Windows/v7.0A/include\」 -I \」C:/Program Files/Microsoft Visual Studio 10.0/VC/include\」" –without-http_rewrite_module –without-http_gzip_module

開始配置,注意路徑中的斜槓,必定要使用「/」

四、更改objs/ ngx_auto_config.h

將第一行宏定義中的引號轉義,改成相似以下的樣子:

#define NGX_CONFIGURE 」 –prefix=c:/nginx –with-cc=cl –with-cc-opt=’-D FD_SETSIZE=4096 -I \」C:/Program Files/Microsoft SDKs/Windows/v7.0A/include\」 -I \」C:/Program Files/Microsoft Visual Studio 10.0/VC/include\」‘ –without-http_rewrite_module –without-http_gzip_module」

五、更改objs/Makefile

在objs/Makefile中查找kernel32.lib user32.lib advapi32.lib ws2_32.lib,並補全路徑,改成:」C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\kernel32.lib」 「C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\user32.lib」 「C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\advapi32.lib」 「C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\ws2_32.lib」。並加入兩個額外的路徑,如: 「C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\LIBCMT.lib」 「C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib」

六、nmake

七、nmake install

此時Nginx便安裝到了C:/nginx目錄下。

如上默認編譯的都是Release版本的Nginx程序,若是須要編譯Debug版,更改auto/cc/gcc、auto/cc/msvc中對應配置便可。


 -----------------------------------------

更新版:

一、打開msys.bat   如:D:\MinGW\msys\1.0\msys.bat

二、cd /nginx/tags/release-1.1.9 

三、執行 ./auto/configure

將會有以下提示
./auto/configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

四、執行 ./auto/configure --without-http_rewrite_module

還會有以下提示
./auto/configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

五、執行 ./auto/configure --without-http_rewrite_module --without-http_gzip_module

六、打開 Visual Studio 命令提示(2010)

七、cd /nginx/tags/release-1.1.9

八、nmake
相關文章
相關標籤/搜索