有可能构建libstdc ++并将其静态硬编码到给定的GCC版本中吗?

时间:2013-04-25 16:36:20

标签: gcc libstdc++

我的主要问题是我有一个系统,官方支持的GCC版本是4.6.2 / 4.6.3(这取决于你是否更新)这是相当陈旧的我还需要一些新的C ++ 11功能以及较新的GCC版本的所有改进。

我想以这样的方式建立GCC:

  • 本地GCC安装中包含的libstdc++,我想这就像“便携式”安装。
  • GCC不会在系统内部搜索替代libstdc++并仅使用给定和内置libstdc++版本
  • 即使我使用-I -L -B指定了一个替代文件夹,其恰好包含任何给定libstdc++版本的不同安装,GCC应该忽略此仅针对libstdc++
  • 的建议

我编译GCC没有问题,但是我没有得到如何强制GCC表现得像我想要的那样,例如GCC 4.7.2版本总是在我的默认GCC 4.6.3安装中获取libstdc ++,这是显然我不想要的。

在构建GCC时,有哪些正确的标志?

1 个答案:

答案 0 :(得分:0)

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

带前缀的正常安装应该完成所需的大部分操作。配置--prefix=/path/to/your/installation,然后唯一要改变的是默认规格文件。添加-rpath=/path/to/the/folder/where/your/libstdc++/sits,您应该全部设置。 specs文件的语法在man gcc

中描述