执行make时如何自动生成目标文件目录
2024-06-27
98
概述
在执行make时,如果我们把目标文件objects输出到一个集中的目录,而一个干净的工程(比如刚从git克隆下来的),这个目录可能是不存在的,此时执行make就会报错“Fatal error: can’t create xxx/xxx/xxx.o: No such file or directory”,makefile中可以有两种方法来自动创建这个目录,避免编译报错。
通过目标文件添加依赖
在makefile中给目标文件增加依赖,在依赖中执行mkdir命令来创建目标文件的目录,参考makefile的写法如下:
OBJDIR = obj
MODULES := src src2
...
OBJDIRS := $(patsubst %, $(OBJDIR)/%, $(MODULES))
build: $(OBJDIRS)
echo $^
$(OBJDIRS):
mkdir -p $@
通过嵌入shell命令
通过在makefile中定义个DUMMY变量,该变量中嵌入shell命令来实现,参考makefile如下:
SOURCES:=$(shell find $(SRC)/ -type f -name *.c) #Get all the c files
#Get the files theyre gonna be compiled to
OBJECTS:=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SOURCES))
#Get just the paths so you can create them in advance
OBJDIRS:=$(dir $(OBJECTS))
#call mkdir with the directories (using a dummy var because too much
#trouble to deal with priorities) someone could prob do better
#--parents ignores the repeated and already existing errors
DUMMY:=$(shell mkdir --parents $(OBJDIRS))
更新于:6个月前赞一波!2
相关文章
- 【说站】php有哪些文件包含漏洞
- 【说站】python Pandas读取数据文件的优点
- 【说站】php文件Hash如何使用
- 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
- 【说站】python读取txt文件
- .net 通过 HttpClient 下载文件同时报告进度的方法
- 【说站】python两种不同的文件流读写
- 【说站】python不同大小文件的复制方法
- 【说站】python按行读取文件的方法比较
- 【说站】python打开文件的两种方式
- 【说站】ps遇到文件尾如何修复
- 【说站】python文件的三大访问方式
- 【说站】ps大型文件储存不了jpg
- 【说站】python文件拆分与合并的方法
- 【说站】python zipfile模块的文件操作
- 【说站】python文件导入相对路径
- 【说站】python shutil模块如何操作文件
- 【说站】python中如何遍历目录树
- 【说站】python文件的读取和写入
- 【说站】python脚本文件的扩展名是什么
文章评论
评论问答