首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用clang选择特定的libstdc++版本

问使用clang选择特定的libstdc++版本
EN

Stack Overflow用户
提问于 2016-11-08 19:43:03
回答 1查看 4.4K关注 0票数 9

我使用clang++编译C++代码。我链接到gcc标准C++库libstdc++。但是,我在我Ubuntu机器上安装了几个不同的libstdc++。当我运行clang++时,它使用libstdc++的4.8安装

代码语言:javascript
复制
andy@andy:~$ clang++-3.5 -v
Ubuntu clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: i386-pc-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.6
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.6.4
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8.4
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.6
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.6.4
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.3
Selected GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8
Candidate multilib: .;@m32
Selected multilib: .;@m32

如何告诉clang++使用不同版本的libstdc++库和头文件?具体地说,我想使用4.6版本。

EN

回答 1

Stack Overflow用户

发布于 2018-06-21 17:05:29

正如你从clang++ -v的输出中看到的,它将默认为在给定的“前缀”(即安装目录)中找到的最新的gcc安装。

在Ubuntu上安装多个版本的gcc的问题在于,它们都使用相同的前缀/usr。

因此,我使用的解决方法是创建一堆假安装,每个安装都有自己的前缀:/usr/local/gcc/5.5.0、/usr/local/gcc/6.4.0、/usr/local/gcc/7.3.0等:

代码语言:javascript
复制
VERSION=6.4.0
sudo mkdir -p /usr/local/gcc/$VERSION/include/c++
sudo ln -s /usr/include/c++/$VERSION /usr/local/gcc/$VERSION/include/c++/$VERSION
sudo mkdir -p /usr/local/gcc/$VERSION/lib/gcc/x86_64-unknown-linux-gnu
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/$VERSION /usr/local/gcc/$VERSION/lib/gcc/x86_64-unknown-linux-gnu/$VERSION

现在,我可以通过--gcc-toolchain选项指示clang++使用特定版本的gcc的库:

代码语言:javascript
复制
clang++ --gcc-toolchain=/usr/local/gcc/6.4.0 ...
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40486053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档