0

GNU make 3.82以降、別の人が書いたMakefileの1つが機能しなくなりました。

../../PPB_ROOT/ppb-team.mk:238:*暗黙のルールと通常のルールが混在しています止まる。

238行目:

$.o %.h : %.idl
    @echo Cleaning up previous output of idl...
    @-rm -f $@
    @echo Making $@...
    $(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'はどういう意味ですか?タイプミスですか?

4

2 に答える 2

3

これは、GNUmakedocsセクション4.2のtypeoだと思います。

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
于 2012-11-13T11:49:37.270 に答える
0

これは、2つのターゲットを作成するパターンルールのように見えます(例3を参照)。したがって、おそらく次のようになります。

%.o %.h : %.idl
于 2012-11-13T11:50:09.117 に答える