0

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

 Makefile format :

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

3 回答 3

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。希望这可以帮助。

于 2012-10-24T08:37:26.980 回答
1

检查-og++ 的选项,它也应该在只创建目标文件时工作,例如:

g++ -c x.cpp -o objdir/x.o
于 2012-10-24T08:37:04.330 回答
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 等。

于 2012-10-24T08:37:28.123 回答