Makefile 使文件成为单独的目录

Makefile 使文件成为单独的目录,makefile,Makefile,阅读make和gcc手册确实需要很长时间。因为我只需要它们的一些基本功能,所以我想快速地学习它们 项目目录如下所示 CWD |----Source----1.cpp |----Header----1.h |----Object----1.o |----Makefile 当前工作目录中有三个目录和一个Makefile,“1.cpp”包括“1.h”。我想使用CWD中的Makefile来编译项目,以便对象输出位于对象目录中 这是我现在问题的简化版本。因为从头开始比较困难,谁能帮我为这个简单的问题编写

阅读make和gcc手册确实需要很长时间。因为我只需要它们的一些基本功能,所以我想快速地学习它们

项目目录如下所示

CWD
|----Source----1.cpp
|----Header----1.h
|----Object----1.o
|----Makefile
当前工作目录中有三个目录和一个Makefile,“1.cpp”包括“1.h”。我想使用CWD中的Makefile来编译项目,以便对象输出位于对象目录中

这是我现在问题的简化版本。因为从头开始比较困难,谁能帮我为这个简单的问题编写一个Makefile?我会努力从中学习,解决我自己的问题。或者有人可以建议我需要学习make和gcc的哪些部分来解决这个问题


提前感谢。

这将足以编译源代码并生成对象:

Object/1.o: Source/1.cpp Header/1.h
    $(CXX) -c Source/1.cpp -IHeader -o Object/1.o
如果您想构建一个可执行文件(可能称为“一”),请在上面添加另一条规则:

one: Object/1.o
    $(CXX) Object/1.o -o one

Object/1.o: Source/1.cpp Header/1.h
    $(CXX) -c Source/1.cpp -IHeader -o Object/1.o
要稍微清理一下,请使用:


当然,当你准备好的时候,你还可以做很多事情。

谢谢,我现在可以编译所有的东西了。我开始阅读手册。。。
one: Object/1.o
    $(CXX) $^ -o $@

Object/1.o: Source/1.cpp Header/1.h
    $(CXX) -c $< -IHeader -o $@
one: Object/1.o
    $(CXX) $^ -o $@

Object/1.o: Header/1.h

Object/%.o: Source/%.cpp
    $(CXX) -c $< -IHeader -o $@