私の使うMakefileの設定(C++)
Sponsored Links
皆さんこんにちは
お元気ですか。私は元気です。
さて、今回はMakefileについてです。
Makefileは自動的にコンパイルするには素晴らしいツールの一つでございますが、
結構書くのは手間取るものです。
ということで参考にしながらある程度まともに動くものを作ってみました。
CXX = g++ CFLAGS = -O2 -Wall CXXFLAGS = -O2 -Wall SOURCE := $(shell ls *.cpp) HEADER := $(shell ls *.hpp) OBJS := $(SOURCE:.cpp=.o) TARGET = test all: clean $(TARGET) $(TARGET):$(OBJS) $(CXX) -o $@ $(OBJS) .c.o: $(CC) $(CFLAGS) -c $^ .cpp.o: $(CXX) $(CXXFLAGS) -c $^ clean: rm -f *.o
これを動かすと同じディレクトリにあるファイルに対して分割コンパイルを実行し、最後に実行ファイルを生成する動作を行います。
いくつかポイントがあるのでご紹介します。
1.同じディレクトリのcppファイルを取得する。
SOURCE = $(shell ls *.cpp)を実行することで、同じディレクトリに存在するcppファイルをコンパイルし、オブジェクトファイルを生成します。
2.OBJS := $(SOURCE:.cpp=.o)
.cppを.oに変更した変数をOBJSに入れます。
3.allを実行することでリコンパイルし直します。
4..cpp.o:によってコンパイルコマンドを設定する。