2015-09-11 50 views

回答

0

這是編譯作業的編號(make -j)。跟蹤編譯錯誤很有幫助。

+0

愚蠢的問題。什麼是編譯工作? – flashburn

+0

'make -j '允許您一次編譯多個源文件(或項目):https://www.gnu.org/software/make/manual/html_node/Parallel.html。 – Thomas

1

顯然,它沒有連接到編譯作業的編號(可以通過make -j 1輕鬆檢查)。基於autoconf的構建系統指示源樹中makefile的「級別」)。要成爲價格,這是make的MAKELEVEL變量的價值。

1

目前接受的答案不正確。而且,這實際上是一個GNU Make問題,而不是LLVM問題。

,你看到的是MAKELEVEL變量通過make回顯到命令行的當前值。該值設置爲遞歸執行結果。從GNU make manual

作爲一個特殊的功能,當它從一級級向下傳遞變量MAKELEVEL改變。這個變量的值是一個字符串,它是作爲十進制數字級別的深度。頂級品牌的價值爲'0'; '1'表示一個子製作,'2'表示一個子製作,等等。當make爲配方設置環境時會發生增量。

如果你手頭上的GNU製作源代碼的副本,你可以看到在output.c產生與void message(...)功能的輸出消息。在GNU make v4.2中,這發生在626行上。具體地說,program參數被設置爲字符串「llvm」並且makelevel參數被設置爲如上所述。

由於它被錯誤地調出,它不是編譯作業的編號。 -j [jobs]--jobs[=jobs]選項啓用並行執行高達jobs配方數量同時。如果選擇-j--jobs,但jobs未設置,則GNU Make嘗試儘可能多地同時執行配方。有關更多信息,請參見this section of the GNU Make manual

無需並行執行即可遞歸執行,並且無需遞歸執行即可並行執行。這是目前接受的答案不正確的主要原因。