无法构建microhttpd项目.使用cygwin生成文件的问题



我试图使用microhttpd库,以便从c++代码生成html站点。我在windows上使用netbeans并使用cygwin编译。我已经从ftp://ftp.gnu.org/gnu/libmicrohttpd/下载了microhttpd的最新版本,并且已经能够运行示例。

我的问题是当我试图构建自己创建的代码(例如hellobrowser,遵循本教程:http://www.gnu.org/software/libmicrohttpd/tutorial.html#Hello-browser-example)。
我尝试重新使用makefile。我,删除示例代码的名称和添加hellobrowser(我认为这是做得很好)。之后,我尝试在项目的顶部运行automake,以便它更新makefile。从cygwin终端或netBeans终端,但我得到以下错误:

/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(在示例中工作正常),并使用生成的makefileS构建项目。

如果有人能指出我做错了什么,我将非常感激。非常感谢!

注意:我在项目的3个级别,./,./src和./src/examples中有makefiles,但我只考虑位于。/src/examples的那些,因为代码在该路径内。

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/develop/MinGW/share/automake-1.11/automake,这是您的Struct.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/

相关内容

  • 没有找到相关文章

最新更新