2012-07-08 55 views
1

我正在使用clang,llvm來編譯MySQL並做一些分析。但鏈接階段非常耗時(+ 5分鐘),我實際上不需要最終的可執行文件。只關注幾個在鏈接之前成功生成的對象文件。如何讓僅編譯但不鏈接

我試着將LD AR導出到/ bin/true,但它不能編譯說沒有規則使目標xx.a. 一般來說,有沒有辦法修改makefile(來自automake)只有編譯但不能鏈接?

+0

沒關係。我解決了這個問題,只需將LD導出到/ bin/true – Oxdeadbeef 2012-07-08 05:53:43

+0

感謝您的建議。我正在尋找一個「關閉」選項,但沒有找到它。似乎我需要首先發布答案:) – Oxdeadbeef 2012-07-08 09:02:01

回答

2

把我的解決方法放在這裏,以防某人有類似的需求。

我所做的就是將LD導出到/ bin/true,這樣最後一個鏈接階段可以快速通過,這基本上什麼都不做,只能成功返回。

有時,構建系統可能無法兌現此ENV變量。在這種情況下,臨時將`which ld'改爲調用/ bin/true的腳本(確保保留原始ld並在之後將其改回!)或使用alias ld =/bin/true(儘管未嘗試此方法) 。

+0

謝謝,這個解決方案工作出色!我可以編譯並僞造一個沒有錯誤的鏈接。 – crazycliffy 2013-04-01 21:19:17