搜索目標/依賴文件

正常情况下,虽然目標/依賴文件名中不含有路徑,其實這種文件名的路徑部分是空值,代表的是當前目錄(./)。如果我们要在文件名中给出路徑,則有兩種方法:

1、絕對路徑,必須以‘/’開頭;

2、相對路徑,非‘/’開頭的所有路徑。

變量VPATH

變量VPATH定義了一组搜索路徑。如果一個文件在文件名给出的路徑中不存在,就在(VPATH+文件名中的路徑)的路徑中搜索該文件。

在VPATH定義中,路徑的名字由冒號或空格分開。

命令vpath

vpath pattern directories

vpath允許對符合某一格式的文件名指定一个搜尋路徑,路徑由冒號或空格隔開。pattern是一個包含‘%’的字符串,例如:

vpath%.h $(INCDIR)

如果有多個vpath和一个文件名匹配,則make按次序搜索這些vpath指定的路徑。

vpath pattern

清除和該格式相關聯的搜尋路径徑。

vpath

清除前面所有由vpath指定的搜尋路徑。

變量GPATH

1. 如果目標文件是根據文件名搜索得到的,此時$@代表文件名。

2. 如果目標文件是通過搜索其它路徑得到的,此時@代表文件名。但是如果搜索路徑出
現在變量GPATH中,@將代表(搜索路徑+文件名)。

3. 如果目標文件没有被搜索到,意味着需要執行規則命令来創建該目標文件,此時$@代表文件名。

4. 如果依賴文件是根據文件名搜索得到的,而且該依賴文件不需要被更新,此時$<代表文件名。

5. 如果依賴文件是通過搜索其它路徑得到的,而且該依賴文件不需要被更新,此時$<代表(搜索路徑+文件名)。

6. 如果依賴文件没有被搜索到或是需要被更新,此时<代表的是當它作為目標文件被創
建或更新的規則命令中的<代表的是當它作為目標文件被創建或更新的規則命令中的@。

results matching ""

    No results matching ""