makefile - 为什么automake无法生成Makefile.in

标签 makefile autoconf automake

尝试使用 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,所以这是一个问题。

您可以重命名这两个文件之一吗?

关于makefile - 为什么automake无法生成Makefile.in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387167/

相关文章:

c++ - 使用 autotools 为共享库正确安装 config.h

makefile - 如何在 Makefile.am 脚本中指定我只想编译对象 .o 文件?

linux - 尝试从 gnu make 中的命令获取值时出错

makefile - 在Makefile中导出环境变量

c++ - "make"是否知道如何在子目录中搜索包含文件?

gcc - 我可以让 CMake 使用 gcc 增量链接生成 Makefile 吗?

java - 在 autoconf 或 makefile 中禁用版本后缀/扩展

visual-c++ - Visual C++ 的 Autoconf

autoconf - 如何将 autoconf/automake 指向非标准包

gnu-make - 如何访问 Makefile.am 文件顶部定义的用户定义变量?