【问题标题】:Building nginx in Windows 7 with MSYS使用 MSYS 在 Windows 7 中构建 nginx
【发布时间】:2012-12-18 04:35:29
【问题描述】:

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

  1. 我在Administrator下运行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

我做错了什么?

【问题讨论】:

    标签: visual-c++ build nginx msys


    【解决方案1】:

    我也遇到了同样的问题。

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

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

    这个answer帮我解决了问题。

    【讨论】:

    • 对我来说,解决方案是将 msys\bin 中的 perl.exe 重命名为 perl_UNUSED.exe 之类的名称,以便使用 Strawberry Perl。 (即使添加了 Strawberry Perl 的路径,并且出现在 msys 路径之前......由于某种原因,它仍在使用 msys perl。)使用“which perl”来验证正在使用的正确版本。
    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 2014-01-10
    • 2013-05-14
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多