当前位置: 首页 > 知识库问答 >
问题:

使用MSYS在Windows 7中构建nginx

戎泰
2023-03-14

我有带有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 source directry并运行配置脚本。
  4. 然后我运行nmake-f obs/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中

我做错了什么?

共有1个答案

鱼渝
2023-03-14

我也有同样的问题。

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

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

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

 类似资料:
  • MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。(是否厌倦了Cygwin蜗牛般的shell环境,试试MSYS中的rxvt吧)

  • MSYS 中国项目,Windows 下程序开发、远程登录、科学计算、代码移植的瑞士军刀。MSYS 不是一个操作系统,而是一个将 Linux 源代码在 Win 32 上编译而成的 UNIX 工作环境。

  • 问题内容: 如果在单击另一个组件时弹出菜单仍处于打开状态,则该组件不会获取该事件,因为该事件可能已被弹出窗口占用。通常,所有JPopupmenus都会发生这种情况。仅在具有Windows LAF(Windows7)的Java 7中会发生这种情况。有解决方法吗?它是已知的错误吗? 问题答案: 这是解决该问题的魔术路线: 在查看BasicPopupMenuUI类的源代码后,我发现了这一点。显然,根据代

  • 当我使用API远程触发作业时,jenkins上的作业会说:“由远程主机IP启动”。但我的工作可能会因不同的原因和不同的来源而触发,所以如果我在詹金斯能看到一份工作并直接看到触发的原因,那就太好了。 我知道我可以传递一个字符串参数,然后在每个作业中查看参数-但这不是很明显。我希望在所有工作的列表中看到它。类似于:。 有什么办法可以做到这一点吗? 我注意到我们的发布作业采用了一个显示我想要的版本参数—

  • 问题内容: 我正在尝试从build.gradle文件中运行Groovy类。我遵循使用指南中的指示,但是出现错误。 构建文件为: 常规类很简单: 但是,当我尝试运行gradlew编译fooTask时,出现以下错误: 无法解析类groovyClass 知道为什么吗? 谢谢 问题答案: 如果要从构建中引用它,则需要添加该类(而不是在简单的Exec任务中)。给定此目录结构: 在哪里: 并且是: 然后,运行

  • 如何包含来自构建的变量。AndroidManifest数据标记中的gradle。 我试过了 但是我收到了错误NullPointerException:没有键[数据]的记录