我正在尝试使用 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 个级别的 makefile,./、./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