私はMakefilesに非常に慣れていないので、現在、開始しているプロジェクトで最初のMakefilesをビルドしようとしています。
私が抱えている問題は、各ファイルのルールを定義せずに、すべての.cppファイルを処理する方法を自動的に認識させることです。
また、オブジェクトファイルをすべて1つのフォルダー(この場合は$(PLATFORM)/obj
/ where PLATFORM=win32
)に配置する必要があります。
以下は、私がMakefileに使用しているもので、mingw32-make.exeを使用して実行します。
CXX=g++
CXXFLAGS=-c -Wall -DALLEGRO_STATICLINK
LDFLAGS=
PLATFORM=win32
SOURCES=main.cpp
EXECUTABLE=app.exe
OBJDIR=$(PLATFORM)/obj/
OBJECTS= $(SOURCES:%.cpp=$(OBJDIR)%.o)
all: $(EXECUTABLE)
%.o: %.c
$(CXX) $(CXXFLAGS) $< -o $@
$(EXECUTABLE): $(OBJECTS)
$(CXX) $(OBJECTS) $(LDFLAGS) -o $(EXECUTABLE)
エラーが発生しました:
mingw32-make:*ターゲット
win32/obj/main.o', needed by
app.exeを作成するルールはありません。止まる。
何が間違っているのかわかりません。他のmakefileの例を見回していて、それらは同様の構造を持っているように見えるので、私の何が悪いのかわかりません。なぜこれが起こっているのかについての説明と、それを修正する方法についてのアドバイスを探しています。
また、私のスタイルについてのコメント、それをよりクリーン/標準化するための提案も素晴らしいでしょう。makefileの作成を学びながら、適切に学習していることを確認したいと思います。
ありがとう