无法生成microhttpd项目。使用cygwin生成文件的问题 我试图使用MyTHETCH库来从C++代码生成HTML站点。 我在windows上使用netbeans,并使用cygwin进行编译。 我已经从下载了microhttpd的最新版本,并且能够运行这些示例

无法生成microhttpd项目。使用cygwin生成文件的问题 我试图使用MyTHETCH库来从C++代码生成HTML站点。 我在windows上使用netbeans,并使用cygwin进行编译。 我已经从下载了microhttpd的最新版本,并且能够运行这些示例,netbeans,makefile,cygwin,apache,automake,Netbeans,Makefile,Cygwin,Apache,Automake,我的问题是当我试图构建自己创建的代码时(例如,hellobrowser,遵循本教程:)。 我尝试重新使用makefile.am,删除示例代码的名称并添加hellobrowser(我认为这样做没问题)。之后,我尝试在我的项目顶部运行automake,以便它从cygwin终端或netBeans终端更新makefile.in,但我得到以下错误: /cygdrive/c/users/toni/NB/hellobrowser$ automake Can't locate Automake/Stru

我的问题是当我试图构建自己创建的代码时(例如,hellobrowser,遵循本教程:)。
我尝试重新使用makefile.am,删除示例代码的名称并添加hellobrowser(我认为这样做没问题)。之后,我尝试在我的项目顶部运行automake,以便它从cygwin终端或netBeans终端更新makefile.in,但我得到以下错误:

/cygdrive/c/users/toni/NB/hellobrowser$ automake
    Can't locate Automake/Struct.pm in @INC (@INC contains: /mingw/share/automake-1.11 /usr/lib/perl5/5.10/i686-cygwin /usr/lib/perl5/5.10 /usr/lib/perl5/site_perl/5.10/i686-cygwin /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10/i686-cygwin /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at /cygdrive/c/Develop/MinGW/bin/automake-1.11 line 47.
    BEGIN failed--compilation aborted at /cygdrive/c/Develop/MinGW/bin/automake-1.11 line 47.
但当查看automake文件夹内部时,我可以找到Struct.pm:

/cygdrive/c/develop/MinGW/share/automake-1.11/automake$ ls
    ChannelDefs.pm  Configure_ac.pm    Item.pm      Rule.pm     Variable.pm
    Channels.pm     DisjConditions.pm  ItemDef.pm   RuleDef.pm  Version.pm
    Condition.pm    FileUtils.pm       Location.pm  Struct.pm   Wrap.pm
    Config.pm       General.pm         Options.pm   VarDef.pm   XFile.pm
如果automake工作,我将运行configure(在示例中工作正常),并使用生成的makefile构建项目

如果有人能指出我做错了什么,我将不胜感激。 多谢各位

<强>注释:我的项目中有3个层次的Mag文件,.//Src和./SRC/实例,但我只考虑位于./SRC/实例中的代码,因为代码在该路径内。p>

Makefile.am:

        SUBDIRS  = .

    if USE_PRIVATE_PLIBC_H
     PLIBC_INCLUDE = -I$(top_srcdir)/src/include/plibc
    endif

    AM_CPPFLAGS = \
      $(PLIBC_INCLUDE) \
      -I$(top_srcdir)/src/include \
      @LIBGCRYPT_CFLAGS@

    if USE_COVERAGE
      AM_CFLAGS = --coverage
    endif

    # example programs
    noinst_PROGRAMS = \
    hellobrowser 

    hellobrowser_SOURCES = \
     hellobrowser.c 
    hellobrowser_LDADD = \
     $(top_builddir)/src/daemon/libmicrohttpd.la 

如错误消息所示,
@INC
不包含
/cygdrive/c/develope/MinGW/share/automake-1.11/automake
,这就是您的
结构.pm
所在的位置

它确实包含
/mingw/share/automake-1.11
,这是一个完全不同的文件夹。也许有一个汽车制造商的方式来解决这个问题,但我不熟悉。如果您的所有工具都是基于cygwin的(在这种情况下,您到底为什么安装了MinGW?),那么您可以将
/MinGW/share/automake-1.11
作为指向适当文件夹的符号链接

$ mkdir -p /mingw/share/
$ ln -s /cygdrive/c/develop/MinGW/share/automake-1.11/automake /mingw/share/automake-1.11
…并确认(就cygwin项目而言)这是有效的:

$ ls /mingw/share/automake-1.11/

cygwin是否区分大小写?将
/mingw/share/automake-1.11/automake
重命名为
/minge/share/automake-1.11/automake
是否有帮助?不,重命名没有帮助它对我也不起作用。无论如何,我正在寻找更简单的方法来实现我的目标(使用python CGI脚本)。在windows环境中混合使用cygwin、mingw、netbeans、libmicrohttpd并不是最好的主意。无论如何谢谢你!我经常使用cygwin make/sh/perl来构建VisualC++/mingw项目。它工作良好,易于安装。不过,您确实需要很好地了解cygwin强加的Windows名称空间的混乱。(我在Linux上使用相同的工具链,所以弄乱是件好事™ 就我而言。)