makefile子目录中新生成的O文件为何找不到?
根目录下有二个以上文件夹,每个文件夹下都有独立的makefile文件能够生成.o文件,在根目录下的makefile需要调用子目录下的makefile,然后将子目录下生成的所有.o合成一个大的.o文件。
目录:
Makefile
目录A
1.c
2.c
makefile
目录B
3.c
4.c
makefile
子目录下的makefile就不说了,根目录下makefile:
目录:
Makefile
目录A
1.c
2.c
makefile
目录B
3.c
4.c
makefile
子目录下的makefile就不说了,根目录下makefile:
MODULES := 目录A 目录B
all:
for module in $(MODULES);do if make -w -C $$module all; then echo "$$module build success";else echo "$$module build error";exit 1; break;fi; done
#在执行上面的动作首次生成子目录的.o文件时在这里打印是空的,而在子目录己经生成.o后,再次执行该makefile
#这里有打印,为什么呢?
echo $(shell find $(MODULES) -name '*.o')
##在执行上面的动作首次生成子目录的.o文件时有打印
find $(MODULES) -name '*.o'
#用wildcard在首次生成子目录的.o文件时,这里打印也是空的
echo $(wildcard */*.o)
#由于首次生成子目录的.o文件时find为空,因此这里报错。 这里应该怎么写?
$(LD) -r -o lib根.o $(shell find $(MODULES) -name '*.o')
...全文
相关推荐
Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录
Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录,主要实现的功能入校描述:1. myMath、myRecord、myString要分别能够单独生成各自对应的 .a 静态库文件2.
linux makefile 工程目录下,所有c文件
在Linux系统中,Makefile是用于自动化构建程序的脚本,它定义了如何从源代码编译、链接生成可执行文件。
linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)
然而,有时候在新安装或者精简版的Linux系统中,可能会发现`make`命令缺失,导致尝试运行`make`时出现“make: *** 没有指明目标并且找不到 makefile”的错误提示。
Linux下Makefile文件的编写
- 如果工程中的头文件发生变化,则需要重新编译所有引用这些头文件的C文件。2. **规则**:规则定义了如何生成一个特定的目标文件。
自动生成MakeFile文件的几大工具
"本文主要探讨了两种用于自动生成Makefile文件的工具——Autotools和CMake,分析了它们的特点和使用场景。"在软件开发过程中,管理编译过程是至关重要的,Makefile文件就是这


