我正在尝试使用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.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(对示例工作正常),并使用生成的makefileS构建项目。
如果有人能指出我做错了什么,我真的很感激。 非常感谢你!
注意:我的项目有3个级别,。/,。/。src和./src/examples,但我只考虑位于./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
答案 0 :(得分:0)
如错误消息所示,@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/