Linuxで現在のディレクトリにあるプロジェクトをビルドするために使用したい次のMakefileがserial.c
ありますが、これは内部からC ++ライブラリを使用し、ディレクトリにビルドする必要があり、src
すべてのファイルを明確に分離します。include
obj
#define some paths
DHOME = ${HOME}/Serial
SRC = ${DHOME}/src
INCLUDE = ${DHOME}/include
BIN = ${DHOME}/bin
OBJ = ${DHOME}/obj
# compiler
CFLAGS = -I$(INCLUDE)
CXX = g++ -g ${INCLUDE}
MAKE = ${CXX} -O -Wall -fPIC -c
$(OBJ)/%.o: $(SRC)/%.cc
$(MAKE) $(CFLAGS) $< -o ${OBJ}/$@
serial: $(OBJ)/%.o
${CXX} -o $@ $@.c $< $(CFLAGS)
.PHONY: clean
clean:
@rm -f serial $(OBJ)/*.o
試したときのエラーメッセージmake serial
またはmake
make: *** No rule to make target `/home/alex/Serial/obj/%.o', needed by `serial'. Stop.
しかし、Makefileを見ると、このルール(ルールの上のserial
ルール)を指定したようです。私はおそらく基本的な何かを逃しました。たぶん、そのようなプロジェクトを処理し、ディレクトリ内で異なる部分を明確に分離するためのより良い方法がありますか?
ありがとう、アレックス