2013-10-23 69 views
0
gcc -c ./foo/name.c ./bar/name.c 

这将输出一个文件./name.o。我假设一个覆盖另一个。停止gcc覆盖目标文件

如何让gcc将目标文件放置在与源文件相同的目录中,以防止目标文件相互覆盖?

编辑:

对于任何人想知道如何解决这个在Makefile中。

SOURCES = /foo/name.c ./bar/name.c 

build: 
    $(foreach SOURCE,$(SOURCES), \ 
     gcc -c -o $(SOURCE:.c=.o) $(SOURCE);\ 
    ) 
+2

['-o <路径/到/文件>'](http://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html) – Kninnug

+0

向好听..? –

回答

2

分成2个命令。

gcc -c -o ./foo/name.o ./foo/name.c 
gcc -c -o ./bar/name.o ./bar/name.c