2012-11-13 30 views
1

我正在尝试使用icpc与C++ 11功能,但是我需要一个C++ 11 stdlib,intel不提供。在非标准位置使用icpc与gnu libstdC++

我在RHEL 6上以用户身份运行,因此系统libstdC++已过期。有一个较新的版本安装,但它是在一个非标准的位置。

如何链接到非标准位置的gcc std库?我使用哪些标志?

+0

嗯。它在这里使用系统库就好了(ICC 13.0.0 20120731)。我不必指定任何特别的东西。你真的启用C++ - 11模式吗? ('-std = C++ 11'编译器标志。) –

+0

问题是系统标准库是旧的(gcc 4.0也许)。我需要链接到不同版本的GCC中C++ std库的版本,该版本位于不同的位置。 –

+0

啊,好的。对不起,但不知道如何做。我通过包管理器安装了ICC,从来没有处理过这些东西。 –

回答

0

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

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

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

+0

所以,-I和-L是用于正常库的包含和库目录...但不是stdC++不同? –

+0

不,它的标题分散在几个dirs中,但是这些都是 –