我有以下makefile: -
all:
find | grep -E "\.c\$" | xargs gcc -c -I src -I include -w
gcc -o main *.o -lm -pthread
在运行make
时出现以下错误: -
find | grep -E "\.c\ | xargs gcc -c -I src -I include -w
/bin/sh: 1: Syntax error: Unterminated quoted string
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 2
我尝试了类似问题的答案,但添加SHEBANG系列并没有帮助。此外,我已经逃脱了$
字符。我在这里做错了什么?
答案 0 :(得分:2)
make
已经完成了你要做的大部分工作。假设您不希望find
在子目录中递归查看,您真正需要的是
# Rule for building a c file
.c:
gcc -c -I src -I include -w -o $@ $<
# Make sure all C files are compiled, then link the resulting object files
all: *.c
gcc -o main *.o -lm -pthread
如果您希望在子目录中找到C源文件,您可能需要稍微重新构建项目,方法是在每个子目录中添加Makefile并在这些目录中递归调用make
。 / p>