在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