【问题标题】:How does g++ find the Standard librariesg++ 如何找到标准库
【发布时间】:2016-08-10 15:04:26
【问题描述】:

所以我目前正在尝试使用比 CentOS 6.5 版本更新的 g++ (4.7) 版本来编译一些东西。

我正在通过 yum 运行支持。我准备好了一个 4.7 g++ 二进制文件,并切换了链接,以便 /usr/bin/g++ 链接到我想要的二进制文件。

这一直有效,但现在 g++ 找不到任何 c++ 标准库(例如 <algorithm><iostream>)。

我想知道 g++ 如何加载这些库/这些库的保存位置,以便我可以弄清楚如何让它们正确导入!

谢谢!

【问题讨论】:

  • g++ 使用某种形式的黑魔法来找到它们。 :-)。好吧...撇开开玩笑,AFAIK,STL 头文件的路径被硬编码到 g++ 中,库路径可以用环境变量和标志更改...要将部分更改为 STL 头文件,您可能必须重新编译 gcc...

标签: c++ linux gcc centos g++


【解决方案1】:

如果您有多个 GCC 安装,您可以直接使用 gcc|g++ 前端 (/usr/bin/{gcc|g++}) 通过手段使用其中任何一个的工具、头文件和库 的-Bprefix 选项,其中 prefix 是安装前缀。

例如,我安装了 GCC 4.9.3(每个发行版),前缀为:

/usr/lib/gcc/x86_64-linux-gnu/4.9.3

并且还安装了 GCC 5.2.1(也是每个发行版),前缀为:

/usr/lib/gcc/x86_64-linux-gnu/5.2.1

如果我调用:

gcc -B/usr/lib/gcc/x86_64-linux-gnu/4.9.3...

然后我使用的是 4.9 工具、头文件和库。如果我调用:

gcc -B/usr/lib/gcc/x86_64-linux-gnu/5.2.1...

然后我使用的是 5.2 工具、头文件和库。如果我省略 -Bprefix 然后我得到我的最新安装 (5.2)。

【讨论】:

    猜你喜欢
    • 2012-11-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多