0


   Makefileを使用して、すべてのオブジェクトとバイナリをリリースディレクトリに配置しようとしています。私が試したすべての順列にはエラーがあるようですので、助けを求めています。これが私が持っているものであり、それを変更する方法を知る必要があります。ありがとう。

BUILDDIR = Release
CXXFLAGS =      -O2 -g -Wall -fmessage-length=0
LDFLAGS=
HEADERS = $(wildcard *.h)
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)
LIBS =
EXECUTABLE= MyProgram

all:  $(HEADERS) $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS) 
        $(CXX) $(LDFLAGS) $(OBJECTS) -o $@

clean:
        rm -f $(OBJECTS) $(EXECUTABLE)
4

1 に答える 1

0

これらの行を次のように変更します。

OBJECTS := $(SOURCES:%.cpp=$(BUILDDIR)/%.o)

EXECUTABLE := $(BUILDDIR)/MyProgram

次に、2つのオプションがあります。1つは、vpathオブジェクトにコンパイルする必要のあるソースを見つけるために使用することです。2つ目は、明示的なパターンルールを使用することです。

$(BUILDDIR)/%.o : ./%.cpp
    $(CXX) $(CXXFLAGS) -o $@ -c $<
于 2012-04-28T21:04:39.803 に答える