我想編譯使用autotools構建系統到LLVM位代碼的軟件;也就是說,我希望最終獲得的可執行文件是LLVM位碼,而不是實際的機器碼。構建自動化軟件到LLVM位代碼
(我們的目標是能夠在整個程序運行LLVM位碼分析工具。)
我已經試過指定CC="clang -emit-llvm -use-gold-plugins"
和變體的configure
腳本,但無濟於事。總會出現一些問題(例如,該軟件包會生成.a
靜態庫,它們會被鏈接器拒絕)。
在我看來,正確的方法是LLVM位碼應該是一個交叉編譯目標。設置爲--host=
,但沒有這樣的標準目標(即使Knuth的MMIX有目標)。
到目前爲止,我已經使用了kludges,例如編譯CC="clang -emit-llvm -use-gold-plugins"
並手動運行鏈接線(使用llvm-ld
或llvm-link
)。這適用於簡單的包,例如grep
。
我想要一個強大的方法,可以用於大多數(如果不是全部的話)配置腳本,包括中間文件或中間目標文件。
llvm-ld似乎暗示它接受.a文件http://llvm.org/releases/2.7/docs/CommandGuide/html/llvm-ld.html – 2013-05-09 20:29:58
llvm-ld在以後的LLVM版本中不再存在。 – 2013-05-12 12:00:33
你看過「鏈接」使用lld嗎? http://lld.llvm.org/ – 2013-09-29 05:56:08