2012-11-13 63 views
0

由於GNU使3.82另一個人寫Makefile中的一個不再起作用:

../../PPB_ROOT /ppb-team.mk:238:*混合隱式和正常規則。停止。

行238:

$.o %.h : %.idl 
    @echo Cleaning up previous output of idl... 
    @-rm -f [email protected] 
    @echo Making [email protected] 
    $(IDL_CMD) 
    $(IDL_CXX_CMD) 
    @ if [ "$(LOCAL_ORB)" != "OMNIORB" ]; then \ 
     $(OWN_MAKE) -f $(MAKEFILE) `basename '$*'`_skel.o; \ 
     $(AR) $(ARFLAGS) `basename '$*'`.a `basename '$*'`.o `basename '$*'`_skel.o; \ 
    else \ 
     $(AR) $(ARFLAGS) `basename '$*'`.a `basename '$*'`.o; \ 
    fi; 

什麼 '$的.o' 的意思?這是一個錯字嗎?

回答

3

我會說這是一個類型0,從GNU使文檔第4.2節:

http://www.gnu.org/software/make/manual/make.html

Because dollar signs are used to start make variable references, if you 
really want a dollar sign in a target or prerequisite you must write two 
of them, ‘$$’ 

我會懷疑它應該是

%.o %.h : %.idl