【问题标题】:nmake error (trying to use Python with WAMP)nmake 错误(尝试将 Python 与 WAMP 一起使用)
【发布时间】:2013-09-08 10:37:30
【问题描述】:

使用 Windows 7 64x。我已经安装了 Python 3.3.2。 我已经从http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2 下载了 MOD_WSGI 我现在正在尝试学习本教程:http://code.google.com/p/modwsgi/wiki/InstallationOnWindows

我跑

nmake -f win32-ap22py31.mk

但我得到一个错误:

cl /DWIN32  /DNDEBUG  /I"c:\Program Files\Microsoft Visual Studio 9.0\VC\include"  /I"c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include"  /I"c:\Program Files\Apache Software Foundation\Apache2.2\include"  /I"c:\Python31\include" /MD  /GF  /Gy  /O2  /Wall  /Zc:wchar_t  /Zc:forScope mod_wsgi.c /LD /link  "/LIBPATH:c:\Program Files\Microsoft Visual Studio 9.0\VC\lib"  "/LIBPATH:c:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib"  "/LIBPATH:c:\Program Files\Apache Software Foundation\Apache2.2\lib"  /LIBPATH:c:\Python31\libs  /OPT:REF  /OPT:ICF=2  /RELEASE  /SUBSYSTEM:WINDOWS python31.lib  libhttpd.lib  libapr-1.lib  libaprutil-1.lib /OUT:mod_wsgi.so
mod_wsgi.c
mod_wsgi.c(34) : fatal error C1083: Cannot open include file: 'httpd.h': No such file or directory

【问题讨论】:

    标签: python windows nmake


    【解决方案1】:

    这是 mod_wsgi make 文件中的配置问题。 在构建 win32-ap22py31.mk 时,nmake 需要知道正确的 Apache 和 Python 包含和库路径。 之后,nmake 知道在哪里编译和链接输出 mod_wsgi.so 所需的目标文件

    首先检查 Apache 和 Python 的安装位置并采用这些路径。 您将需要它们来修改 make 文件。

    我们使用 python 2.7,所以目录路径与您的版本有点不同。

    在 Notepad++ 等文本编辑器中打开 win32-ap22py31.mk。

    你会看到这样的行:

    CPPFLAGS = \
     /DWIN32 \
     /DNDEBUG \
     /I"c:\Program Files\Microsoft Visual Studio 9.0\VC\include" \
     /I"c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" \
     /I"C:\apache2.2\include" \
     /I"C:\Python27\PC" 
    

    在这里您应该设置路径以包含来自 apache 和 python 安装的 make 文件使用的文件。 它们以 /I 指令开头,如果您将命令转移到下一行,则应以“\”结尾。 如果您需要更多包含路径,也可以在此处添加它们。 不要在目录路径末尾添加“\”,因为它可能会破坏构建并且您将收到构建错误。 还要检查包含行是否适合您安装 VC++ 和 SDK(前两行)。

    对于库文件:

    LDFLAGS = \
     /link \
     "/LIBPATH:c:\Program Files\Microsoft Visual Studio 9.0\VC\lib" \
     "/LIBPATH:c:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" \
     "/LIBPATH:C:\apache2.2\lib" \
     "/LIBPATH:C:\Python27\PCbuild" \
     /OPT:REF \
     /OPT:ICF=2 \
     /RELEASE \
     /SUBSYSTEM:WINDOWS
    

    在这里您应该使用 /LIBPATH 指令而不是 /I 添加库路径。

    并且对于使用的库更改以下命令:

    LDLIBS = \
     python27.lib \
     libhttpd.lib \
     libapr-1.lib \
     libaprutil-1.lib
    

    如果不使用 python27.lib,则设置 python31.lib。

    libhttpd.lib、libapr-1.lib 和 libaprutil-1.lib 是在 Apache2.2 构建期间编译的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      相关资源
      最近更新 更多