2016-08-02 68 views
1

makefile中存檔中的目標成員名稱是什麼?什麼是makefile中的歸檔目標成員名稱?

這裏解釋:https://www.gnu.org/software/make/manual/html_node/Archive-Members.html#Archive-Members 但我不太明白,因爲沒有一個簡單的例子。

如果我有

target(name): name 
     echo $% 

$%是目標名稱的自動變量。

如果我使用make target,這將無法運行

爲什麼呢?什麼是「目標會員名稱」?

+0

你明白,這是在談論'ar'文件,對吧? – tripleee

+0

「如果我使用make target,它不會運行」沒有制定target的規則,您還需要'target:target(name)',儘管通常archives有一個'.a'後綴,所以可能' target.a:target.a(name)'。 – user657267

回答

1

您連接的文檔在開頭附近具體解釋了這一點。

此構造僅適用於目標和先決條件,不適用於食譜!您可能在配方中使用的大多數程序都不支持此語法,因此無法直接對存檔成員執行操作。只有ar和專門設計用於檔案操作的其他程序纔可以這樣做。因此,更新檔案成員目標的有效配方可能必須使用ar

因此,例如,以產生ar歸檔稱爲target含有name,命令將是

touch name 
ar cr target name 

作爲Makefile,這是

target: name 
    ar cr [email protected] $^ 

name: 
    touch name 

target(name)語法時有用你想操作target內部的name副本。例如,如果name在某個時間點被重建,則您的Makefile可能希望將其日期戳與成員的日期戳比較,以確定是否需要更新target中的副本。

target(name): name 
    ar cr [email protected] $% 

但是,這並沒有指定如何創建target擺在首位;據我所知,你需要一個類似於我的例子頂部的配方。

+0

任何有效的例子?我其實需要一些有效的東西 – Thenewstockton

+0

從你的問題中你不清楚你在找什麼。什麼目前不起作用? – tripleee

相關問題