1

I'm struggling with makefiles on OS X Lion. I'm trying to use % pattern rule to compile all my .c files into objects in current dir. I'm using rule:

%.o : %.c                                                                      
    $(CC) -c $(CFLAGS) $< -o $@ 

But make says that no targets. I know that % pattern it is feature of gMake but -v says that I've got GNU make installed. I've also tried old style:

 .cpp.o:
        gcc $^ -o $@

But it is do not working to. What I'm doing wrong? Thanks.

4

1 に答える 1

2

それが Makefile 全体である場合、実際にはターゲットが含まれていません。ビルドしたいファイルの名前をリストする偽のターゲットを使用して呼び出すmake file.oか、追加します。allそれは次のように簡単かもしれません

.PHONY: all
all: $(patsubst %.cpp,%.o,$(wildcard *.cpp))

あなたが持っている*.oのは、「 type のターゲットをビルドしたい場合、その方法は次のとおりです」と指定するパターンルールですが、「これはビルドしたいファイルです」と指定する実際のターゲットはありません。

ちなみに、GNU Make は C ファイルのコンパイル方法を既に知っているため、組み込みのパターン ルールをオーバーライドする特別な必要がない限り、それを定義する必要はありません。

于 2012-08-09T14:00:02.940 に答える