繁体   English   中英

为什么automake无法生成Makefile.in

[英]why automake fails to generate Makefile.in

尝试使用automake / autoconf(分别为版本1.10和2.61)。 一切都运行正常,除了automake没有生成Makefile.in。

产生了一些警告,但我认为它们并不重要。 然而,最后一行让我觉得它产生的东西应该不会停在那里。 项目中有一个md5.cc和md5.c文件。

xanadu:fsd wwilliam$ automake --add-missing
configure.ac:46: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
/var/tmp/autoconf/autoconf-15~193/SRC/autoconf/lib/autoconf/specific.m4:421: AC_USE_SYSTEM_EXTENSIONS is expanded from...
/var/tmp/autoconf/autoconf-15~193/SRC/autoconf/lib/autoconf/functions.m4:1677: AC_FUNC_STRNLEN is expanded from...
configure.ac:46: the top level
configure.ac:46: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
configure.ac:46: warning: AC_COMPILE_IFELSE was called before AC_GNU_SOURCE
/var/tmp/autoconf/autoconf-15~193/SRC/autoconf/lib/autoconf/specific.m4:340: AC_GNU_SOURCE is expanded from...
configure.ac:46: warning: AC_RUN_IFELSE was called before AC_GNU_SOURCE
configure.ac:46: warning: AC_COMPILE_IFELSE was called before AC_AIX
/var/tmp/autoconf/autoconf-15~193/SRC/autoconf/lib/autoconf/specific.m4:455: AC_AIX is expanded from...
configure.ac:46: warning: AC_RUN_IFELSE was called before AC_AIX
configure.ac:46: warning: AC_COMPILE_IFELSE was called before AC_MINIX
/var/tmp/autoconf/autoconf-15~193/SRC/autoconf/lib/autoconf/specific.m4:474: AC_MINIX is expanded from...
configure.ac:46: warning: AC_RUN_IFELSE was called before AC_MINIX
Makefile.am: object `md5.$(OBJEXT)' created by `md5.cc' and `md5.c'

configure.ac的相关内容:

AC_INIT(testapp, 1.1, user@blah.com)
AM_INIT_AUTOMAKE(testapp,1.1)
AC_OUTPUT(Makefile)

Makefile.am的内容:

AUTOMAKE_OPTIONS = foreign

CFLAGS=-O2
bin_PROGRAMS = testapp
testapp_SOURCES = interface.cc interface.hh keymgr.cc keymgr.hh main.cc manage.cc manage.hh md5.c md5.cc md5.h mm.cc mm.hh mysqldb.cc mysqldb.h testapp.cc testapp.h

我一直在谷歌搜索该问题,但没有发现任何有用的东西。

命令运行是:

autoscan
mv configure.scan configure.ac
(edit configure.ac)
autoconf
(edit Makefile.am)
aclocal
automake --add-missing

任何人之前看过这样的事情,或者知道我怎么可以打开一些额外的调试来解决这个问题呢?

Makefile.am: object `md5.$(OBJEXT)' created by `md5.cc' and `md5.c'

是一个导致Automake中止的错误消息。 这两个文件必须编译为md5.o ,这是一个问题。

你能重命名这两个文件中的一个吗?

它在第46行抱怨,你没有提供你的问题。
无论如何,要解决此问题,您必须在configure.ac添加AC_USE_SYSTEM_EXTENSIONS

例:

AC_INIT(testapp, 1.1, user@blah.com)
AM_INIT_AUTOMAKE(testapp,1.1)
AC_OUTPUT(Makefile)
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_C
...

我有一个我用automake配置的程序。 该程序有一个脚本来进行设置,其中包括:

aclocal -I config &&
libtoolize --automake &&
autoheader &&
automake --foreign --add-missing &&
autoconf

正如我所看到的那样,差异在于, autoconf步骤是最后一步,而不是中间步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM