0

我的主要问题是我有一个系统,其中官方支持的 GCC 版本是 4.6.2/4.6.3(这取决于你是否更新),它已经很旧了,我还需要一些新的 C++11 功能和所有较新的 GCC 版本的改进。

我想以以下方式构建 GCC:

  • libstdc++包含在本地 GCC 安装中,我猜它类似于“便携式”安装。
  • GCC 不会在系统内部搜索替代方案libstdc++,只使用给定的内置libstdc++版本
  • 即使我特别指定了-I -L -B一个替代文件夹,该文件夹恰好包含任何给定libstdc++版本的不同安装,GCC 也应该只忽略这个建议libstdc++

我编译 GCC 没有问题,但我不知道如何强制 GCC 表现得像我想要的那样,例如 GCC 4.7.2 构建总是在我的默认 GCC 4.6.3 安装中选择 libstdc++,这显然是我的不想要。

在构建 GCC 时这样做的正确标志是什么?

4

1 回答 1

0

没有构建标志会强制执行此类行为。-I所有其他标志都不是建议,它们是绝对要求,永远不会被忽略。如果您足够勇敢地指定包含不同编译器版本的头文件或库的搜索路径(不可能偶然发生,因此您应该充分了解自己在做什么),那么您完全应该承担后果。

带有前缀的正常安装应该可以完成大部分所需的工作。配置--prefix=/path/to/your/installation,那么唯一要更改的就是默认的规范文件。添加一个-rpath=/path/to/the/folder/where/your/libstdc++/sits,你应该已经准备好了。specs 文件的语法在man gcc.

于 2013-04-25T17:11:34.470 回答