makefile 获取参数
时间: 2024-06-17 13:04:31 浏览: 445
在Makefile中获取参数可以使用命令行传参的方式,通过$(MAKE)命令传递参数,并且在Makefile中使用$(MAKECMDGOALS)变量获取传递的参数。$(MAKECMDGOALS)表示Makefile的目标,也就是用户在命令行中输入的目标,例如:
```
make target ARG=value
```
在Makefile中可以这样获取参数:
```
target:
@echo $(ARG)
```
以上代码会输出命令行传递的参数"value"。需要注意的是,如果在Makefile中有多个目标需要获取参数,则需要在每个目标中都进行相应的处理。
相关问题
Makefile 传递参数
Makefile 是一种在 Unix 系统中常用的构建工具,它通过简单的文本文件来描述软件项目如何从源码编译、链接成最终可执行程序的过程。在 Makefile 中,你可以使用变量来接收并传递参数,通常用于定制编译过程。
当你想要传递参数给 Makefile 的规则时,可以在命令行中指定这些参数,然后在 Makefile 中通过 `$` 符号引用它们。例如:
```bash
make target=debug
```
在这个例子中,`target` 是一个自定义的参数,`debug` 是它的值。在 Makefile 中,可以这样获取这个值:
```makefile
all: $(target)
debug: ; @echo "Building for debug mode"
release: ; @echo "Building for release mode"
$(target):
# 编译代码的命令会使用 $target 变量来指定模式
make -f sub_makefile $(target)
```
在这个 Makefile 中,`$(target)` 在 `$(target):` 行被引用,表示根据传递的不同参数(如 `debug` 或 `release`),执行不同的编译指令。
makefile获取文件夹大小
可以使用makefile中的shell命令来获取文件夹大小。具体方法如下所示:
```makefile
# 定义获取文件夹大小的函数
define get_folder_size
du -sh $(1) | awk '{print $$1}'
endef
# 调用获取文件夹大小的函数
folder_size := $(call get_folder_size, folder_path)
# 输出文件夹大小
$(info Folder size is $(folder_size))
```
其中,`get_folder_size`是一个自定义的函数,使用`du`命令获取文件夹大小,并使用`awk`命令提取出大小值。`call`函数用于调用自定义函数,并将`folder_path`作为参数传入。最后,使用`info`函数输出文件夹大小。
阅读全文