2013-12-11 73 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'的输出 –