我有一个Makefile,它会产生很多目标文件 - .o - 。如何将这些目录重定向到一个目录,然后从该目录创建可执行文件?
Makefile format :
x.o = x.hpp x.cpp
g++ -c x.cpp
答案 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等。