autotools - make [1]:***没有规则来制作目标`all'。停止

时间:2014-09-29 22:12:38

标签: makefile autotools

我创建了一个使用autotools构建的简单测试应用程序+库。问题是生成的Makefile不理解“所有”目标。

Makefile.am:

ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src
VERSION=0:0:0
EXTRA_DIST = autogen.sh

bin_PROGRAMS = testApp

libtest_la_SOURCES = src/testLibrary.c
libtest_la_LDFLAGS = -version-info ${VERSION}

testApp_SOURCES = src/testApp.c
testApp_LDADD = libtest.la
lib_LTLIBRARIES = libtest.la

configure.ac:

AC_INIT(foobar, 1.0, me@mail.com)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(src)
AC_PROG_CC
AM_PROG_CC_C_O
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([subdir-objects])
AC_OUTPUT(Makefile)

输出命令“make”:

Making all in src
make[1]: *** No rule to make target `all'.  Stop.
make: *** [all-recursive] Error 1

然而,要了解“testApp”目标并成功构建它。根据我对autotools的有限知识,bin_PROGRAMS变量应该为“all”目标提供其数据吗?

1 个答案:

答案 0 :(得分:1)

您似乎正在组合递归和非递归制作规则。

如果删除此行:

SUBDIRS = src

此错误可能会消失。它正在all中寻找src/Makefile规则。