2013-07-30 57 views
2

我想鏈接到Unix上的LLVM和Clang,並遇到幾個問題。鏈接到Unix上的Clang和LLVM - 被迫使用LLVM的編譯器標誌?

llvm-config的文檔說該選項將「打印使用LLVM頭文件所需的C++編譯器標誌」,並且該示例顯示用這些標誌編譯用戶代碼。等等,什麼?這不是那個意思,因爲LLVM是用-fno-rtti編譯的,而且它在llvm-config --cxxflags的列表上,所以沒有人可以編譯一個使用RTTI的程序作爲自己,並鏈接到LLVM上Unix的?

爲什麼LLVM需要-fno-rtti到包括它們的頭文件

+0

也許由llvm完成的輸出處理來自RTTI的缺失信息?這只是我的猜測。 –

回答

1

http://llvm.org/docs/Packaging.html

LLVM默認禁用RTTI。在運行make重新啓用它時,將REQUIRES_RTTI = 1添加到您的環境中。這將允許用戶在啓用RTTI的情況下構建並仍然從LLVM類繼承。