无法生成microhttpd项目。使用cygwin生成文件的问题 我试图使用MyTHETCH库来从C++代码生成HTML站点。 我在windows上使用netbeans,并使用cygwin进行编译。 我已经从下载了microhttpd的最新版本,并且能够运行这些示例
我的问题是当我试图构建自己创建的代码时(例如,hellobrowser,遵循本教程:)。无法生成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
我尝试重新使用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上使用相同的工具链,所以弄乱是件好事™ 就我而言。)