如何将所有目标文件放到目录中

时间:2012-10-24 08:29:23

标签: c++ makefile

我有一个Makefile,它会产生很多目标文件 - .o - 。如何将这些目录重定向到一个目录,然后从该目录创建可执行文件?

 Makefile format :

 x.o = x.hpp x.cpp
      g++ -c x.cpp

3 个答案:

答案 0 :(得分:2)

嗯,这似乎很容易:

app: bin/x.o
    g++ bin/x.o -obin/x

bin/x.o: x.cpp
    g++ -c x.cpp -obin/x.o

您需要创建bin目录,但您也可以轻松地将其添加到Makefile中。 希望这会有所帮助。

答案 1 :(得分:1)

检查g ++的-o选项,它也应该在仅创建目标文件时起作用,例如:

g++ -c x.cpp -o objdir/x.o

答案 2 :(得分:0)

使用这样的规则:

%.o: %.cpp $(HPP_FILES) Makefile
        $(CC) $(CC_FLAGS) -c -o directory/$@ $<

然后使用以下内容链接所有文件:

my_binary: $(OBJ_FILES)
        $(CC) $(LD_FLAGS) -o $@ directory/$(OBJ_FILES)

您可以使用简单的赋值定义OBJ_FILES,HPP_FILES,例如: HPP_FILES:= x.hpp y.hpp等。