0
我有一部分GNU make makefile(gcc v4.1.2)不能按我的預期工作。我有次diretiories四個庫,我想如果make
在基地跑/遞歸地建立建目錄模式規則沒有按預期工作
/prj
|--/build
| |--makefile
| |--/Tables.lib
| | |--makefile
| |--/General.lib
| | |--makefile (etc..)
|--/lib
|--/src
用於/ PRJ /編譯/ Makefile中簡要代碼:
LIB_DIR = /prj/lib
LIBRARY := libcomposition_adjustment.a libtables.a libgeneral.a libbiblio.a
DIRS := Tables.lib Composition_adjustment.lib General.lib Biblio.lib
all: $(LIBRARY)
#all: $(LIB_DIR)/libcomposition_adjustment.a # this line works
%.a : $(LIB_DIR)/%.a
$(LIB_DIR)/libtables.a:
cd Tables.lib; $(MAKE)
$(LIB_DIR)/libcomposition_adjustment.a:
cd Composition_adjustment.lib; $(MAKE)
$(LIB_DIR)/libgeneral.a:
cd General.lib; $(MAKE)
$(LIB_DIR)/libbiblio.a: libgeneral.a
cd Biblio.lib; $(MAKE)
它說「沒有規則來制定目標'libcomposition_adjustment.a',這是'all'所需要的。stop」。但我認爲線%.a : $(LIB_DIR)/%.a
會處理。我正在使這個模式規則不正確?
如果我嘗試第二個all:
行被註釋掉,它按預期工作。
謝謝,這是有道理的,它必須做的「一些東西「,即使它沒有做任何事情。 – Moop 2012-08-09 21:33:24