이전 버전의 인텔 컴파일러 (11) 및 gcc (4.3)가있는 클러스터에서 작업하고 있습니다.인텔 컴파일러로 컴파일 코드에서 /usr/include/c++/4.3/을 제외하려면
인텔 합성기 xe (14.0 컴파일러 포함)의 최신 평가판을 설치했습니다. gcc 4.9도 설치했습니다. 새로운 gcc 컴파일러와 인텔 컴파일러가 모두 내 홈 디렉토리에 있습니다. (루트가 아님)
코드에 C++ 11을 사용하므로 분명히 컴파일을 위해 -std=c++11
플래그를 사용합니다. 내가 icpc
내 코드를 컴파일 할 때 내 메이크
에 인텔의 포함 및 라이브러리를 포함 -L
및 -I
플래그를 제공, 컴파일러는 /user/include/c++/4.3/
.... 경로를 찾습니다.
/home/peter/intel/composerxe/include
에
C_INCLUDE_PATH
및
CPLUS_INCLUDE_PATH
를 설정하여 경로를 제거하려고 노력했다. 그러나 여전히 경로는
/usr/include/c++
입니다. 이 때문에/
user/include/c++/4.3/tr1_impl/
...의 이전 파일은 최신 파일이 아닌 포함되어 있습니다.
어떻게하면이 경로를보고 새 경로를 볼 수 있습니까? 이제 intel 컴파일러 대신 gcc4.9를 사용하여 어떤 변경 작업을해야합니까?
나는 컴파일을 위해 -nostdinc
플래그를 추가하려했지만 행운을 보지 못했습니다. 이 같은 오류를 제공합니다 : 1 헤더가 iostream입니다 포함되어 있으므로
catastrophic error cannot open source file "iostream"
나는 인텔은 시스템에 이미 설치된 GCC로부터 헤더를 공유하고이 /가 포함 USR/걸리거나 USR은 로컬 /이 /가 포함 있다고 생각
gcc의 경우, '-nostdinc' 스위치는 무엇이 될 수 있습니다. 당신은 –
내가 그것을 시도합니다.home/peter/intel/bin/icpc -o test -H -nostdinc -I/home/peter/intel/composerxe/include -L/home/peter/intel/composerxe/lib/intel64 다음은 make 파일의 내용입니다. -I/home/peter/boost_1_55_0 -std = C++ 11 test.cpp ... "iostream"소스 파일을 열 수없는 치명적인 오류가 발생합니다 – pugs
@pugs 질문에 해당 정보를 편집해야합니다. – JBentley