2014-09-29 43 views
1

我使用autotools创建了一个简单的测试应用程序+库。问题是生成的Makefile不理解“全部”目标。autotools - make [1]:***没有规则使target成为“all”。 Stop

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, [email protected]) 
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) 

输出 “做”:

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

然而,让懂 “testApp” 目标和建立它成功。从我对自动工具有限的知识中,bin_PROGRAMS变量应该为它的数据提供“全部”目标?

回答

1

您似乎将递归和非递归制定规则结合在一起。

如果您删除此行:

SUBDIRS = src 

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

+0

这样做了,谢谢! – 2014-09-30 11:35:01

相关问题