makefile 获取参数
时间: 2024-06-17 21:04:31 浏览: 15
在Makefile中获取参数可以使用命令行传参的方式,通过$(MAKE)命令传递参数,并且在Makefile中使用$(MAKECMDGOALS)变量获取传递的参数。$(MAKECMDGOALS)表示Makefile的目标,也就是用户在命令行中输入的目标,例如:
```
make target ARG=value
```
在Makefile中可以这样获取参数:
```
target:
@echo $(ARG)
```
以上代码会输出命令行传递的参数"value"。需要注意的是,如果在Makefile中有多个目标需要获取参数,则需要在每个目标中都进行相应的处理。
相关问题
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`函数输出文件夹大小。
makefile command line 传参数
在 Makefile 中,可以通过 `$(MAKE)` 变量来递归调用 make 命令,并且可以通过命令行传递参数给 Makefile,这些参数可以在 Makefile 中被访问和使用。
传递参数的语法是在 `make` 命令后面添加参数名和参数值,例如:
```
make ARG1=value1 ARG2=value2
```
在 Makefile 中,可以使用 `${VAR}` 或者 `$(VAR)` 语法来获取参数的值,例如:
```
# 在 Makefile 中
target:
echo "参数1的值是 ${ARG1}"
echo "参数2的值是 ${ARG2}"
```
输出将会是:
```
参数1的值是 value1
参数2的值是 value2
```
注意,如果参数值中含有空格或者特殊字符,需要用引号将其括起来,例如:
```
make ARG1="value with space" ARG2='value with $pecial character'
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)