4

我有带有 Visual Studio 2010 Pro 的 Windows 7 Pro x86。我在 c:\MinGW 也有 MinGW。我想使用 Visual C++ 在 windows 下构建 nginx。我遵循指南。

  1. 我在管理员下运行 cmd,然后调用“c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat”
  2. 在 cmd 我运行 C:\MinGW\msys\1.0\msys.bat
  3. 在下载先决条件之前,我 cd 到 nginx 源目录并运行配置脚本。
  4. 然后我运行 nmake -f objs/Makefile

结果是以下错误:

Microsoft (R) Program Maintenance Utility Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

'install' is up-to-date
    cl -O2  -W4 -WX -nologo -MT -Zi -DFD_SETSIZE=1024 -DNO_SYS_TYPES_H 
       -Ycng x_config.h -Fpobjs/ngx_config.pch -c -I src/core-I src/event
       -I src/event/mod ules  -I src/os/win32  -I objs/lib/pcre-8.32  
       -I objs/lib/openssl/openssl/include -I objs/lib/zlib-1.2.7  -I objs
       -I src/http  -I src/http/modules -I src/mail -Foobjs/ngx_pch.obj 
       objs/ngx_pch.c ngx_pch.c

    cl -c -O2  -W4 -WX -nologo -MT -Zi -DFD_SETSIZE=1024 -DNO_SYS_TYPES_H 
       -Y ungx_config.h -Fpobjs/ngx_config.pch -I src/core-I src/event  
       -I src/event/mod ules  -I src/os/win32  -I objs/lib/pcre-8.32  
       -I objs/lib/openssl/openssl/include  -I objs/lib/zlib-1.2.7  -I objs
       -I src/http  -I src/http/modules -I src/mail -Foobjs/src/core/nginx.obj
       src/core/nginx.c nginx.c

c:\nginx\source\src\event\ngx_event_openssl.h(15) : fatal error C1083:
Cannot open include file: 'openssl/ssl.h': No such file or directory
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio
10.0\VC\BI N\cl.EXE"' : return code '0x2' Stop.

但 OpenSSL 位于 C:\nginx\source\objs\lib\openssl

我做错了什么?

4

1 回答 1

7

我有同样的问题。

该问题与使用 Perl 构建的某些文件的 eol(行尾)处理有关。您不应该使用 MSYS Perl 构建。相反,您应该使用 ActivePerl 或 StrawberryPerl,如指南中所述。确保 PATH 在 MSYS Perl 之前指向适当的 Perl 发行版。

export PATH=/appropriate/perl/dist:$PATH

这个答案帮助我解决了这个问题。

于 2013-04-16T19:00:19.483 回答