首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g++和libstdc++

g++和libstdc++
EN

Stack Overflow用户
提问于 2011-01-11 00:37:07
回答 2查看 778关注 0票数 3

我有以下设置。

在/usr/lib下安装了libstdc++ (旧版)的redhat 4机器,在默认位置安装了旧版本的gcc。

我们还在另一个目录下安装了较新版本的libstdc++和较新版本的gcc 4.4.5。

当我使用4.4.5构建程序并尝试运行时,我收到错误消息,表明我使用的是较旧版本的libstdc++。

有没有一种方法可以使新的编译器链接到安装在/usr/ libstdc++中的系统lib上,而不是它附带的那个。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2012-01-03 01:28:04

(我知道这是一个老问题,这是给谷歌同事的)

看来,gcc和它的标准包含和标准库是紧密相连的。它们的路径甚至被硬编码在gcc可执行文件中,所以除非被覆盖,否则gcc vX应该自动选择它自己构建的相应文件(包括+标准库)(在构建之前./configure命令中的选项--前缀)。

gcc标准的C++库是随gcc一起提供的,并使用相同的命令构建。

因此,不可能/不建议使用不匹配的标准库和编译器版本,除非幸运的是更改很小。

票数 3
EN

Stack Overflow用户

发布于 2011-01-11 00:41:01

为什么要让新的编译器链接到旧的libstdc++?问题听起来像是新的编译器已经在使用旧的库了,因为它不知道它在哪里。在LD_LIBRARY_PATH中指定路径。

代码语言:javascript
复制
export LD_LIBRARY_PATH="/path/to/my/new/lib:${LD_LIBRARY_PATH}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4649079

复制
相关文章

相似问题

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