首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >automake生成Makefile.in失败的原因

automake生成Makefile.in失败的原因
EN

Stack Overflow用户
提问于 2011-03-22 13:20:49
回答 3查看 13.2K关注 0票数 6

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

生成了一些警告,但我认为它们并不重要。然而,最后一行让我认为它正在生成一些它不应该生成的东西,并止步于此。项目中有一个md5.cc和md5.c文件。

代码语言:javascript
复制
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的相关内容:

代码语言:javascript
复制
AC_INIT(testapp, 1.1, user@blah.com)
AM_INIT_AUTOMAKE(testapp,1.1)
AC_OUTPUT(Makefile)

Makefile.am的内容:

代码语言:javascript
复制
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

我一直在谷歌上搜索这个问题,但没有找到任何有用的东西。

运行的命令包括:

代码语言:javascript
复制
autoscan
mv configure.scan configure.ac
(edit configure.ac)
autoconf
(edit Makefile.am)
aclocal
automake --add-missing

有没有人以前见过这样的东西,或者知道我如何打开一些额外的调试来解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-22 18:23:55

代码语言:javascript
复制
Makefile.am: object `md5.$(OBJEXT)' created by `md5.cc' and `md5.c'

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

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

票数 7
EN

Stack Overflow用户

发布于 2012-10-26 04:21:02

它在第46行抱怨,您没有为您的问题提供这一行。

无论如何,要解决这个问题,你必须在你的configure.ac中添加AC_USE_SYSTEM_EXTENSIONS

示例:

代码语言:javascript
复制
AC_INIT(testapp, 1.1, user@blah.com)
AM_INIT_AUTOMAKE(testapp,1.1)
AC_OUTPUT(Makefile)
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_C
...
票数 1
EN

Stack Overflow用户

发布于 2011-03-22 13:34:35

我有一个用automake配置的程序。该程序有一个执行设置的脚本,它由以下部分组成:

代码语言:javascript
复制
aclocal -I config &&
libtoolize --automake &&
autoheader &&
automake --foreign --add-missing &&
autoconf

在我看来,不同之处在于autoconf步骤是最后一步,而不是中间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5387167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档