【问题标题】:Redirecting my output from a Makefile从 Makefile 重定向我的输出
【发布时间】:2012-04-28 20:19:33
【问题描述】:


使用我的 Makefile,我试图让我的所有对象和二进制文件最终都放在 Release 目录中。似乎我尝试过的每个排列都有一些错误,所以我正在寻求帮助。这就是我所拥有的,我需要知道如何改变它。谢谢。

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)

【问题讨论】:

    标签: makefile g++ gnu-make


    【解决方案1】:

    将这些行修改如下:

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

    那么有两种选择。第一种是使用vpath 定位需要编译成对象的源。二是使用显式模式规则:

    $(BUILDDIR)/%.o : ./%.cpp
        $(CXX) $(CXXFLAGS) -o $@ -c $<
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 2018-01-30
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 2013-01-02
      • 2015-08-31
      相关资源
      最近更新 更多