【问题标题】:Using icpc with the gnu libstdc++in a nonstandard location在非标准位置使用 icpc 和 gnu libstdc++
【发布时间】:2012-11-13 16:41:00
【问题描述】:

我正在尝试使用具有 c++11 功能的 icpc,但是我需要一个 c++11 标准库,英特尔不提供。

我在 RHEL 6 上以用户身份运行,因此系统 libstdc++ 已过时。安装了较新的版本,但它位于非标准位置。

如何链接到非标准位置的 gcc 标准库?我使用什么标志?

【问题讨论】:

  • 嗯。它在这里使用系统库很好(ICC 13.0.0 20120731)。我不必指定任何特别的东西。你真的启用了 C++-11 模式吗? (-std=c++11 编译器标志。)
  • 问题是系统标准库太旧了(可能是gcc 4.0)。我需要链接到不同版本的 GCC 中的 c++ std 库版本,该版本位于不同的位置。
  • 啊,好的。抱歉,不知道是怎么做到的。我通过包管理器安装了 ICC,但从未处理过这些东西。
  • 我有一个类似的问题:icpc 10 崩溃了,因为它使用 gcc4.7.0 标准库头文件(它实现了委托构造函数,icpc 不理解)。

标签: c++ c++11 libstdc++ icc


【解决方案1】:

我不知道 ICC,但您是否尝试过通常的 -I 和 -L 选项分别用于标头和库?

我会尝试运行带有-v 标志的较新的g++,它会告诉您它搜索其头文件和库的所有目录,然后告诉ICC 查找相同的路径。

我很确定 RHEL6 不附带 GCC 4.0,因为 RHEL5 附带 GCC 4.1!我认为它在 RHEL6 上是 4.4,如果内存服务正确,它确实支持一些 C++11 功能,但是如果 ICC 没有在您使用 -std=c++11 时定义它,您可能需要定义 __GXX_EXPERIMENTAL_CXX0X__。

【讨论】:

  • 所以,-I 和 -L 用于普通库的包含和库目录...但 stdc++ 不是不同吗?
  • 不,它的标题分散在几个目录中,但仅此而已
猜你喜欢
  • 1970-01-01
  • 2013-03-25
  • 1970-01-01
  • 2018-07-03
  • 2016-10-10
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多