如何为 LLVM 指定自定义 stdlib 目录

pts*_*pts 5 clang library-path

我有带 Clang 的 LLVM 3.3,并且

$ /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
Run Code Online (Sandbox Code Playgroud)

如何指示 Clang 使用除 之外的 stdlib(例如libgcc)目录/usr/lib/gcc/i486-linux-gnu/4.4?我想/tmp/mygccstd改用它。

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

pts*_*pts -1

的组合-B--sysroot为图书馆带来了好处。-nostdinc和的组合-isystem-cxx-isystem完成了包含的技巧。并非所有这些标志都是由 展示的clang --help,其中一些是我从 学习的man gcc,一些是阅读 Clang 源代码的,还有一些是网上的。

-gcc-toolchain也有所不同,但它使用奇怪的规则来查找库,禁止路径名组件中的符号链接等,所以我最终使用上面的其他标志。

  • 这个“答案”并不真正构成原始问题的解决方案,因为它真正说的是“我使用了一些标志”。我认为,示例工作解决方案是可接受的响应的最低限度。 (6认同)