设置VPATH只作用在在依赖文件上,如果当前目录找不到就到VPATH下去找ctest | |--hello.c |--Makefile |--printf2.h |--sub |--printf2.c当运行如下命令时printf2.o : printf2.c gcc -c printf2.c在ctest目录下gcc自然找不到printf2.c但是printf2.o : printf2.c中,由于设置了VPATH=./sub,可以找到printf2.c文件当程序printf2.o : printf2.c gcc -c printf2.c改为printf2.o : printf2.c gcc -c $ <运行就可以了,我试过了,可能由于VPATH=./sub,运行时将$ <替换成./sub/printf2.c了吧,呵呵,反正可以正常运行了,哈哈
您还没有登录,请您登录后再发表评论
2. **路径问题**:`client.h`可能不在当前工作目录中,或者Makefile的搜索路径中。确保`client.h`的路径正确无误,或者在Makefile中添加适当的`VPATH`变量来指定包含`client.h`的目录。 3. **依赖关系错误**:如果`...
2. **VPATH机制**:当依赖文件不在当前目录时,可以使用VPATH机制指定依赖文件的搜索路径,实现跨目录的依赖解析。 3. **动态依赖生成**:通过预处理器或脚本自动生成依赖关系,提高Makefile的自动化程度。 4. **...
- **依赖类型**:Makefile 支持多种类型的依赖,包括文件依赖、模式依赖等。 - **通配符**:Makefile 支持使用通配符来匹配文件名,如 `*` 和 `?`。 - **目录搜索**:通过 `VPATH` 变量或者 `vpath` 关键字来控制 ...
在 Makefile 中定义包含空格的变量时,需要注意转义问题。 **5.2.4 “?=” 操作符** `?=` 操作符用于在变量未定义时赋值。 ##### 5.3 变量的高级用法 变量可以进行更复杂的操作,如替换、拼接等。 **5.3.1 变量的...
Makefile支持条件语句,如`ifeq`、`ifdef`等,用于根据不同的条件执行特定的规则或命令。此外,Makefile还提供了一系列内嵌函数,如`subst`、`patsubst`、`strip`等,用于文本处理和数据转换,极大地增强了Makefile...
为了解决这个问题,Makefile可以使用`$(shell)`函数来运行shell命令,例如`$(wildcard)`查找所有匹配的文件,`$(patsubst)`进行模式替换,以及`vpath`指定源文件的搜索路径。这样可以更全面地追踪间接依赖。另外,`$...
- **目录搜索**:可以通过设置变量 `VPATH` 或使用关键字 `vpath` 来指定搜索目录。 - **伪目标**:不是文件名的目标,通常用于执行特定的任务,如清理工作目录。 - **强制目标**:不依赖于任何文件,主要用于执行...
GNU Make是软件工程领域中不可或缺的工具之一,通过灵活的Makefile配置,能够高效、自动化地管理项目的构建过程。从基础概念到高级特性,Makefile提供了丰富的功能和机制,适用于各种规模的软件项目。掌握Makefile的...
通过使用`vpath`指令,还可以设置源文件的搜索路径。 【清空目标文件的规则】 经常需要清除编译过程中产生的临时文件,如: ```makefile clean: rm -f *.o myprogram ``` 这条规则会删除所有以`.o`结尾的文件和`...
makefile的调试并不像其他编程语言那样有专门的调试工具,而是通过一系列内置函数和命令行选项来辅助完成。以下是一些关键的调试方法: 1. **输出变量值**:通过在makefile中插入`warning`函数来查看变量的当前值。...
- Makefile支持变量,可以用来存储重复使用的值,如编译选项、路径等。 - 变量有两种类型:简单变量(Simple Variables)和递归变量(Recursively Expanded Variables)。 - Makefile还提供了内置函数,如`$...
1.2 问题和BUG 2 Makefile文件介绍 2.1 规则的格式 2.2一个简单的Makefile文件 2.3make处理Makefile文件的过程 2.4使用变量简化Makefile文件 2.5让make推断命令 2.6另一种风格的Makefile文件 2.7在目录中...
这可以通过使用`vpath`指令来指定搜索源文件的路径,或者使用`include`命令包含其他子目录的Makefile。 总之,通过合理地编写Makefile并利用其规则和变量特性,我们可以实现复杂的项目构建逻辑,包括将中间文件输出...
- 伪目标:不对应实际文件的目标,用于抽象出一组操作。 ##### 4.4 文件名使用通配符 - 通配符如 `*` 可以匹配任意字符。 - 示例: ```makefile %.o: %.c $(CC) $(CFLAGS) -c $$@ ``` ##### 4.5 目录搜寻 - ...
Makefile还支持伪目标、多目标、静态模式规则等多种语法来满足不同构建需求。 规则的命令章节讨论了如何在Makefile中编写命令。介绍了命令回显、命令执行、并发执行命令、命令执行错误处理、中断make执行和递归执行...
- make支持内置的规则,称为自动推导规则。 - 这些规则允许make根据文件扩展名自动识别构建命令。 7. **另类风格的makefile** - 除了基本格式外,还可以使用更复杂的结构来组织Makefile。 - 包括使用条件语句、...
第四章“编写规则”涵盖了规则的语法、通配符的使用,以及目录搜索的策略,如 `VPATH` 和 `vpath` 指令。此外,还包括假想目标、没有命令或依赖的规则、静态模式规则、双冒号规则等高级特性。 第五章“在规则中使用...
这样,即使源文件不在当前目录下,Makefile也能正确处理。 7. **Makefile的变量和函数**:在处理多目录时,Makefile的变量和函数如`$(wildcard)`(匹配模式的文件),`$(patsubst)`(模式替换),`$(foreach)`...
相关推荐
2. **路径问题**:`client.h`可能不在当前工作目录中,或者Makefile的搜索路径中。确保`client.h`的路径正确无误,或者在Makefile中添加适当的`VPATH`变量来指定包含`client.h`的目录。 3. **依赖关系错误**:如果`...
2. **VPATH机制**:当依赖文件不在当前目录时,可以使用VPATH机制指定依赖文件的搜索路径,实现跨目录的依赖解析。 3. **动态依赖生成**:通过预处理器或脚本自动生成依赖关系,提高Makefile的自动化程度。 4. **...
- **依赖类型**:Makefile 支持多种类型的依赖,包括文件依赖、模式依赖等。 - **通配符**:Makefile 支持使用通配符来匹配文件名,如 `*` 和 `?`。 - **目录搜索**:通过 `VPATH` 变量或者 `vpath` 关键字来控制 ...
在 Makefile 中定义包含空格的变量时,需要注意转义问题。 **5.2.4 “?=” 操作符** `?=` 操作符用于在变量未定义时赋值。 ##### 5.3 变量的高级用法 变量可以进行更复杂的操作,如替换、拼接等。 **5.3.1 变量的...
Makefile支持条件语句,如`ifeq`、`ifdef`等,用于根据不同的条件执行特定的规则或命令。此外,Makefile还提供了一系列内嵌函数,如`subst`、`patsubst`、`strip`等,用于文本处理和数据转换,极大地增强了Makefile...
为了解决这个问题,Makefile可以使用`$(shell)`函数来运行shell命令,例如`$(wildcard)`查找所有匹配的文件,`$(patsubst)`进行模式替换,以及`vpath`指定源文件的搜索路径。这样可以更全面地追踪间接依赖。另外,`$...
- **目录搜索**:可以通过设置变量 `VPATH` 或使用关键字 `vpath` 来指定搜索目录。 - **伪目标**:不是文件名的目标,通常用于执行特定的任务,如清理工作目录。 - **强制目标**:不依赖于任何文件,主要用于执行...
GNU Make是软件工程领域中不可或缺的工具之一,通过灵活的Makefile配置,能够高效、自动化地管理项目的构建过程。从基础概念到高级特性,Makefile提供了丰富的功能和机制,适用于各种规模的软件项目。掌握Makefile的...
通过使用`vpath`指令,还可以设置源文件的搜索路径。 【清空目标文件的规则】 经常需要清除编译过程中产生的临时文件,如: ```makefile clean: rm -f *.o myprogram ``` 这条规则会删除所有以`.o`结尾的文件和`...
makefile的调试并不像其他编程语言那样有专门的调试工具,而是通过一系列内置函数和命令行选项来辅助完成。以下是一些关键的调试方法: 1. **输出变量值**:通过在makefile中插入`warning`函数来查看变量的当前值。...
- Makefile支持变量,可以用来存储重复使用的值,如编译选项、路径等。 - 变量有两种类型:简单变量(Simple Variables)和递归变量(Recursively Expanded Variables)。 - Makefile还提供了内置函数,如`$...
1.2 问题和BUG 2 Makefile文件介绍 2.1 规则的格式 2.2一个简单的Makefile文件 2.3make处理Makefile文件的过程 2.4使用变量简化Makefile文件 2.5让make推断命令 2.6另一种风格的Makefile文件 2.7在目录中...
这可以通过使用`vpath`指令来指定搜索源文件的路径,或者使用`include`命令包含其他子目录的Makefile。 总之,通过合理地编写Makefile并利用其规则和变量特性,我们可以实现复杂的项目构建逻辑,包括将中间文件输出...
- 伪目标:不对应实际文件的目标,用于抽象出一组操作。 ##### 4.4 文件名使用通配符 - 通配符如 `*` 可以匹配任意字符。 - 示例: ```makefile %.o: %.c $(CC) $(CFLAGS) -c $$@ ``` ##### 4.5 目录搜寻 - ...
Makefile还支持伪目标、多目标、静态模式规则等多种语法来满足不同构建需求。 规则的命令章节讨论了如何在Makefile中编写命令。介绍了命令回显、命令执行、并发执行命令、命令执行错误处理、中断make执行和递归执行...
- make支持内置的规则,称为自动推导规则。 - 这些规则允许make根据文件扩展名自动识别构建命令。 7. **另类风格的makefile** - 除了基本格式外,还可以使用更复杂的结构来组织Makefile。 - 包括使用条件语句、...
第四章“编写规则”涵盖了规则的语法、通配符的使用,以及目录搜索的策略,如 `VPATH` 和 `vpath` 指令。此外,还包括假想目标、没有命令或依赖的规则、静态模式规则、双冒号规则等高级特性。 第五章“在规则中使用...
这样,即使源文件不在当前目录下,Makefile也能正确处理。 7. **Makefile的变量和函数**:在处理多目录时,Makefile的变量和函数如`$(wildcard)`(匹配模式的文件),`$(patsubst)`(模式替换),`$(foreach)`...