2013-12-11 106 views
3

定製STDLIB目錄我LLVM 3.3鏘,和如何指定LLVM

$ /tmp/clang/bin/clang -print-search-dirs 
programs: =/tmp/clang/bin:/usr/lib/gcc/i486-linux-gnu/4.4/../../../../i486-linux-gnu/bin 
libraries: =/tmp/clang/bin/../lib/clang/3.3:/usr/lib/gcc/i486-linux-gnu/4.4:/usr/lib/gcc/i486-linux-gnu/4.4/../../../../lib32:/usr/lib/../lib32:/usr/lib/i486-linux-gnu/../../lib32:/usr/lib/gcc/i486-linux-gnu/4.4/../../..:/lib:/usr/lib 

我怎麼能指示Clang的使用習慣的STDLIB(例如libgcc)比/usr/lib/gcc/i486-linux-gnu/4.4其他目錄?我想使用/tmp/mygccstd代替。

它也在尋找/usr/lib/lib。我該如何禁用?

+0

我能找到找到'-gcc-toolchain'標誌,它改變'程序:'和'庫的一部分:':'。 – pts

+0

嘗試'-nostdinc' – 2013-12-16 11:33:12

回答

1

-B--sysroot的組合爲庫帶來了訣竅。 -nostdinc,-isystem-cxx-isystem的組合做了包括的竅門。並非所有這些標誌都由clang --help顯示,其中一些我從man gcc瞭解到,其他一些讀取Clang源代碼和其他一些在線。

-gcc-toolchain也有所不同,但它使用奇怪的規則來查找庫,不允許在路徑名組件等符號鏈接,所以我最終使用上面的其他標誌。

+2

這個'答案'並不真正構成對原始問題的解決方案,因爲它所說的只是「我使用了一些標記」。我認爲,一個樣本工作解決方案是接受答覆的最小值。 –

+0

我同意你的看法,此答案不包含示例工作解決方案。這個答案的優點是它揭示了哪些有用的標誌(100個之間),並且它也證明了可以用這些標誌來解決它。我強烈反對你的意見,這個答案真的說「我使用了一些標誌」。這個答案實際上是有用的和有用的,而「我使用了一些標誌」根本沒有幫助。我不同意你的看法,一個樣本工作解決方案應該是被接受的答案的最小值。 – pts

+0

@pts,我的叮噹聲無法識別某些頭文件,特別是''。但該程序在我的Mac上用g ++ - 5(自定義gcc)編譯得很好。所以,我必須給出什麼命令才能使它查找路徑中的頭文件g ++ - 5正在搜索?我有'g ++ - 5 -print-search-dirs'的輸出 –