2012-11-13 3 views
1

icpc를 C++ 11 기능과 함께 사용하려고하지만 intel이 제공하지 않는 C++ 11 stdlib가 필요합니다.비표준 위치에서 gnu libstdC++와 함께 icpc 사용

RHEL 6에서 사용자로 실행 중이므로 libstdC++ 시스템이 오래되었습니다. 최신 버전이 설치되었지만 비표준 위치에 있습니다.

표준이 아닌 위치에서 gcc 표준 라이브러리에 연결하려면 어떻게해야합니까? 어떤 플래그를 사용합니까?

+0

흠. 여기서는 시스템 라이브러리를 사용합니다 (ICC 13.0.0 20120731). 특별한 것은 지정하지 않아도됩니다. 실제로 C++ 11 모드를 사용 가능하게 했습니까? ('-std = C++ 11' 컴파일러 플래그.) –

+0

문제는 시스템 표준 라이브러리가 오래되었다는 것입니다 (gcc 4.0 어쩌면). 다른 위치에있는 다른 버전의 GCC에서 C++ 표준 라이브러리의 버전에 링크해야합니다. –

+0

아, 그래. 미안하지만, 그것이 어떻게되는지 전혀 모른다. 패키지 관리자를 통해 ICC를 설치했는데 결코 그 물건을 다룰 수 없었습니다. –

답변

0

ICC를 모르지만 헤더 및 라이브러리에 대해 일반적으로 -I-L 옵션을 사용해 보셨습니까?

-v 플래그로 새로운 g++을 실행하면 헤더와 라이브러리를 검색하는 모든 디렉토리를 알려주고 ICC에 동일한 경로를 표시하도록 알려줍니다.

RHEL5에는 GCC 4.0이 포함되어 있으므로 RHEL6에는 GCC 4.0이 포함되어 있지 않습니다. C++ 11 기능을 지원하는 메모리가 올바르게 작동한다면 RHEL6에서는 4.4라고 생각하지만 -std=c++11을 사용할 때 ICC가 정의하지 않으면 __GXX_EXPERIMENTAL_CXX0X__을 정의해야 할 수도 있습니다.

+0

그래서 -I와 -L은 일반 libs의 include와 library 디렉토리를위한 것이지만 ... stdC++와 다르지 않습니까? –

+0

아니요, 헤더가 몇 군데에 흩어져 있지만 그게 전부입니다. –