2012-02-07 70 views
5

LLVM提供了2個工具llvm-link和llvm-ld。我想知道:如何使用llvm鏈接器?

  • 如何將所有.o文件合併爲一個?

  • 怎麼設置soname喜歡用gcc -Wl,-soname,libsomething.so.1?

我想在C++中,但如果節目這樣對我如何做到這一點的命令行,我會發現怎麼用C++做。

感謝

+0

你到底在做什麼?鏈接目標文件或LLVM位碼文件?創建一個.so? – 2012-02-07 02:20:17

回答

9
  • llvm-link是連接(〜合併)LLVM IR文件到另一個LLVM IR文件的工具。
  • llvm-ld試圖與ld兼容。請注意,LLVM目前沒有真正的鏈接功能,因此llvm-ld要求gcc執行實際的最終階段。

注意,如果你只是想有GCC的功能,使用鐺司機:

clang -c file.c -fpic 
clang -shared file.o -o file.so 

您也可以通過-Wl標誌來clang,你會爲gcc做:

clang -shared file.o -Wl,-soname,libfile.so.8 -o file.so 
+2

要添加到此,請不要直接使用llvm-ld。嘿,請不要直接使用任何鏈接器,除非你確切知道你在做什麼,並且你沒有編譯器驅動程序來爲你處理它。 – echristo 2012-02-09 19:15:57

+3

只是一個提示,在Mac上,使用'-dynamiclib'來代替'共享....- Wl,-soname,libxxxxx'部分 – clsung 2012-10-18 02:38:27

+0

@ clsung謝謝! – Cfr 2013-01-24 13:30:47