【发布时间】:2014-05-06 16:13:44
【问题描述】:
我在 makefile 中使用 find 命令,如下所示:
CC = clang++
CODE = $(shell find . -name *.cpp) #find command here !!!!!!
EXEC = tcr_translator
.PHONY: all clean
all: $(OBJECT)
clear
$(CC) $(CODE) -o $(EXEC) -I src/
clean:
rm $(EXEC)
run: all
./tcr_translator
所以,这个 find 命令列出了所有要编译的 cpp 文件,比在我的 makefile 中硬写它们更容易。这对我的上一个项目非常有效,所以我为我的新项目采用了相同的 makefile。我的问题,现在 find 命令(即 char for char,相同的命令)不会查看我的子目录。 因此,如果我在 src/ 子文件夹中有 .cpp,它将找不到它们。
为什么这样的命令会在某个目录中运行,而不是在其他目录中运行。我真的很茫然:(
【问题讨论】:
-
这作为makefile 不是很有用。您可以在一行 shell 脚本中获得相同的行为。使用 make 的目的是避免重做不必要的工作;如果你只是想在每次发生任何变化时重新编译所有东西,你还不如写一个脚本。
标签: unix command-line makefile find