2014-09-29 53 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

相關問題