gcc -c ./foo/name.c ./bar/name.c
这将输出单个文件./name.o。我假设有人覆盖了另一个。
如何让gcc将目标文件放在与源文件相同的目录中,以防止目标文件相互覆盖?
编辑:
对于想知道如何在Makefile中修复此问题的人。
SOURCES = /foo/name.c ./bar/name.c
build:
$(foreach SOURCE,$(SOURCES), \
gcc -c -o $(SOURCE:.c=.o) $(SOURCE);\
)
答案 0 :(得分:2)
分为2个命令。
gcc -c -o ./foo/name.o ./foo/name.c
gcc -c -o ./bar/name.o ./bar/name.c