私はメイクファイルをメイクファイルプロジェクトのサブディレクトリに書き込もうとしています。サブディレクトリにメイクファイル
MyProject \
test.cpp
Build\
Makefile
また、一般的なメイクファイルを作成しようとしています。ビルドがソースと同じディレクトリ内で行われていないので、ターゲットの定義に問題があります。
CC = g++
CC_FLAGS = -g3
EXEC = test
SOURCEDIR = ..
SOURCES = $(shell find $(SOURCEDIR) -name '*.c' -o -name '*.cpp')
OBJECTS = $(addsuffix .o,$(subst ../,,$(SOURCES)))
.DEFAULT_GOAL = all
$(EXEC): $(OBJECTS)
$(CC) $(OBJECTS) -o $(EXEC)
%.o: %.cpp
$(CC) -c $(CC_FLAGS) $< -o [email protected]
.PHONY: clean
clean:
rm -f $(EXEC) $(OBJECTS)
.PHONY: all
all: $(EXEC)
は、今私は
make all
make: *** No rule to make target 'test.cpp.o', needed by 'test'. Stop.
は誰もこれが機能しない理由を教えたり、より良いアプローチをお勧めすることはできます...私はエラーを取得するビルドするとき。