作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 LLVM 3.3 和 Clang,并且
$ /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 使用 /usr/lib/gcc/i486-linux-gnu/4.4
之外的 stdlib(例如 libgcc
)目录?我想让它使用 /tmp/mygccstd
代替。
它还在 /usr/lib
和 /lib
中查找。我如何禁用它?
最佳答案
在我的系统上我安装了 3 个编译器。 gcc-7.3.0、gcc-7.2.0 和 clang-6.0
gcc-7.3.0安装到系统路径,是系统默认编译器。
gcc-7.2.0 安装到/usr/local,并且是特定工具的构建要求。
clang-6.0 安装到/usr/local 并用于更严格的警告/错误。
我的 boost 库是用 gcc-7.2.0 编译的,我希望使用 clang 来编译我的特定工具。默认情况下,使用 -stdlib=libstdc++
clang 会找到 gcc-7.3.0,而 boost 将无法链接。
为了解决这个问题,我使用了以下编译标志:
-stdlib=libstdc++ # Tell clang to parse the headers as libstdc++ not libc++
-cxx-isystem /usr/local/include/c++/7.2.0/ # includes for libstdc++
-cxx-isystem /usr/local/include/c++/7.2.0/x86_64-pc-linux-gnu/ # includes for libstdc
以及以下链接器标志:
-L/usr/local/lib64/ # static libstdc++
-L/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.2.0/ #static libgcc
您可以使用包含 libstdc++.a
和 libgcc.a
的目录填写您自己的链接器路径,这些目录取决于您的编译器的安装位置。
关于clang - 如何为 LLVM 指定自定义 stdlib 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530105/
我是一名优秀的程序员,十分优秀!