作者:落渊绝夜 | 来源:互联网 | 2023-09-23 14:16
在编写makefile的时候,会遇到就是程序源文件和makefile不是在同一个目录下的,如引用某一个头文件或者.c文件,此时需要通过一些设定来引导make到指定的目录下面对对应的
在编写makefile的时候,会遇到就是程序源文件和makefile不是在同一个目录下的,如引用某一个头文件或者.c文件,此时需要通过一些设定来引导make到指定的目录下面对对应的头文件进行搜索。
一、makefile在搜索指定文件的时候有三种方式,具体如下:
1、在makefile的开头通过对 VPATH 变量来设置
通过VPATH设定的路径是 全局有效 的,通过如下格式进行设置:
VPATH = src:…/headers
上面的的定义指定两个目录,“src”和“…/headers”,make会按照这个顺序进行搜索。目录由“冒号”分隔。
2、使用vpath变量设定对应的搜索路径,具体如下:
可以指定不同的文件在不同的搜索目录中。这是一个很灵活的功能。它的使用方法有三种:
1)vpath
为符合模式的文件指定搜索目录。
2)vpath
清除符合模式的文件的搜索目录。
3)vpath
清除所有已被设置好了的文件搜索目录。
vapth 使用方法中的需要包含“%”字符。“%”的意思是匹配零或若干字符,
例如,“%.h”表示所有以“.h”结尾的文件。指定了要搜索的文件集,而
则指定了的文件集的搜索的目录
3、通过gcc命令中的 -I (大写的i)选项来设定对应文件路径
如: gcc -c -I /src/main.c
二、makefile指定文件生成位置:
在.c文件编译的时候,会生成中间文件.o,此时可能需要指定对应.o文件的生成位置,可以通过gcc的-o选项命令来指定,如:
gcc -c main.c -o ./dir/main.o