如何更改我的 makefile 以构建到单独的文件夹中

Posted

技术标签:

【中文标题】如何更改我的 makefile 以构建到单独的文件夹中【英文标题】:How to change my makefile to build into a separate folder 【发布时间】:2014-02-21 05:21:28 【问题描述】:

我有以下生成文件:

CC=g++
CCOPTS=-Wall -Wextra -g

OBJS = manager.o tcpcon.o
TARGETS = manager

.PHONY: all clean

$(TARGETS) : $(OBJS)
    $(CC) -o $@ $^ $(CFLAGS) $(LIBS)

all: $(TARGETS) $(OBJS)

clean:
    rm -f $(TARGETS) $(OBJS)

%: %.cpp
    $(CC) $(CCOPTS) -o $@ $<

有没有办法可以将我的 .o 和 bin 文件构建到名为 build 的目录中?我尝试过一些教程,但我想我只是不完全理解 makefile..

【问题讨论】:

我相信这应该会有所帮助:[单击此链接到 2009 年在 Stack Overflow 上回答的类似问题][1] [1]:***.com/questions/1950926/… 【参考方案1】:

别难过;我不确定是否有人完全理解 makefile。

BUILD_DIR = build

OBJS = $(BUILD_DIR)/manager.o $(BUILD_DIR)/tcpcon.o
TARGETS = $(BUILD_DIR)/manager

...

$(BUILD_DIR)/%.o: %.cpp
    $(CC) -c $(CCOPTS) -o $@ $<

【讨论】:

嗯,现在我得到以下信息:make: *** No rule to make target build/manager.o', needed by build/manager'。停止。 ....我已经用我现在所拥有的内容更新了我原来的问题。 @ctote:对不起,我的回答有问题,现在更正了。但是请不要这样“更新”您的问题;它使答案过时并破坏了问题对其他用户的价值。

以上是关于如何更改我的 makefile 以构建到单独的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

在单独的文件夹中使用源代码和头文件构建 makefile

如何修改此 Makefile 以分别构建 c 和 cxx 文件?

makefile - 单独的文件夹

为静态构建编辑 Makefile

如何将预单元测试步骤添加到我的*** Makefile.am?

使用 Makefile 在多个文件 C++ 中构建互连的类