2012-10-24 54 views
0

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

Makefile format : 

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

回答

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

检查G的-o选项++,仅创建目标文件时,它也应该工作如:

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

这样的使用规则:

%.o: %.cpp $(HPP_FILES) Makefile 
     $(CC) $(CC_FLAGS) -c -o directory/[email protected] $< 

然后使用类似链接的全部文件:

my_binary: $(OBJ_FILES) 
     $(CC) $(LD_FLAGS) -o [email protected] directory/$(OBJ_FILES) 

您可以定义OBJ_FILES,HPP_FILES使用像简单的任务: HPP_FILES:= x.hpp y.hpp等

相关问题