Nginx 在 mingw 下编译 nginx 找不到头文件

yakczh · 2013年12月17日 · 最后由 yakczh 回复于 2013年12月17日 · 4283 次阅读

cl -O2 -W4 -WX -nologo -MT -Zi -DFD_SETSIZE=1024-wd4244 -Ycngx_config.h -Fpobjs/ngx_config.pch -c -I src/core -I src/event -I src/event/modules -I s rc/os/win32 -I objs -I src/http -I src/http/modules -I src/mail -Foobjs/ngx_ pch.obj objs/ngx_pch.c ngx_pch.c F:\vc9\VC\INCLUDE\basetsd.h(36) : error C2220: warning treated as error - no 'ob ject' file generated F:\vc9\VC\INCLUDE\basetsd.h(36) : warning C4005: 'POINTER_64' : macro redefiniti on F:\vc9\VC\INCLUDE\winnt.h(104) : see previous definition of 'POINTER_64'

F:\vc9\VC\INCLUDE\windows.h(214) : fatal error C1083: Cannot open include file: 'stralign.h': No such file or directory NMAKE : fatal error U1077: 'f:\vc9\VC\BIN\cl.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'f:\vc9\VC\BIN\nmake.exe' : return code '0x2'

在 f:\vc9\VC\include 下面找了,没有这个文件文件

貌似是用了 vc nmake/cl 而不是 mingw 的 make/gcc, 建议看看 nginx 的 readme, configure 的时候应该要指定环境是 mingw 才行。

windows 推荐直接下载编译好的 nginx, 它的进程模型本来就不适合在 windows 运行,用到的很多 posix 函数都要 stub 掉,自己编译太蛋疼。另外我也不确定 nginx 能否在 mingw 下面编译,cygwin 下面编译肯定是可以的...

参照的 http://blog.csdn.net/ngwsx/article/details/6610110 这个页面,其实就是头文件的问题,如果指定头文件,应该没什么问题吧

F:\vc9\VC\INCLUDE\basetsd.h(36) : error C2220: warning treated as error - no 'object' file generated F:\vc9\VC\INCLUDE\basetsd.h(36) : warning C4005: 'POINTER_64' : macro redefinition F:\vc9\VC\INCLUDE\winnt.h(104) : see previous definition of 'POINTER_64' F:\vc9\VC\INCLUDE\winsock2.h(111) : error C2065: 'wd4244' : undeclared identifier F:\vc9\VC\INCLUDE\winsock2.h(111) : error C2057: expected constant expression F:\vc9\VC\INCLUDE\winsock2.h(111) : warning C4200: nonstandard extension used : zero-sized array in struct/union NMAKE : fatal error U1077: 'F:\vc9\VC\BIN\cl.EXE' : return code '0x2' Stop. NMAKE : fatal error U1077: 'F:\vc9\VC\BIN\nmake.exe' : return code '0x2' Stop.

全部头文件都全了,还是歇菜了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号