2013-04-21 5 views
0

나는 코드를 컴파일하기 위해 노력하고, 자신의 메이크와 함께 (하지 광산은 CUDA와 통신하기 위해 C를 사용), 나는 다음과 같은 오류 메시지가 받고 있어요 :ICC을 열 수 없습니다 헤더 파일

icc -fPIC -vec-report1 -g -O3 -fno-strict-aliasing -DNDEBUG -I. -I/include -DUNIX -DCPU_RECOMPUTE=1 -DFULL_DOUBLE=0 -c classify_functions.cpp -o classify_functions.o 

classify_functions.cpp(4): catastrophic error: cannot open source file "cuda_runtime.h" 
    #include <cuda_runtime.h> 
         ^

compilation aborted for classify_functions.cpp (code 4) 

make: *** [classify_functions.o] Error 4 

"locate"를 사용하고 /usr/local/cuda/include/cuda_runtime.h가 있는지 확인했습니다. 그럼 내가 변수를 PATH, LD_LIBRARY_PATH 및 C_INCLUDE_PATH 내 .bashrc에 추가했지만 아무도 작동하는 것. icc 헤더 파일의 경로에 대한 또 다른 변수가 있습니까? 그렇지 않다면 컴파일러가 파일을 열 수없는 이유는 무엇입니까?

+1

'-I/usr/local/cuda/include' 옵션을 추가해보십시오. – Adrian

+0

makefile에서 의미가 있다고 가정 했으므로이 파일을 검색하여 "INCLUDES + = -I. -I $ (CUDA_INSTALL_PATH)/포함". 그 변수의 정의를 어디서나 찾을 수 없기 때문에 "CUDA_INSTALL_PATH =/usr/local/cuda"를 추가 했으므로 이제 문제가 해결 된 것 같습니다. 감사합니다! (프로그램이 이번에는 다른 오류를 반환했지만 헤더를 발견했습니다). 아직도, 나는 makefile에서 변수 def를 약간 추가 할 필요성을 발견했다; bashrc에 이것을 소개하는 방법이 없습니까? – Nordico

+1

해킹으로 bashrc :'alias icc = 'icc -I/usr/local/cuda/include''에 추가 한 다음 새로운 설정으로 bash를 다시로드 할 수 있습니다. 아마도 설정해야 할 변수가있을 것입니다. gcc는'C_INCLUDE_PATH'입니다. 나는 icc에 무엇이 있는지 모른다. – Adrian

답변

0
리눅스에서

(아마도 맥 OS) (내가 더 많은 정보를 제공 할 수 있습니다,하지만 난 정말이 사건에 관련이 모르는), 컴파일러는 * 경로가 포함

/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/include 

라이브러리 경로는

/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/lib 

그래서 그냥 (기타 필요한 헤더 파일과 함께) cuda_runtime.h 파일을 컴파일러 경로에 있는지 확인해야합니다.

* 인텔의 컴파일러 icc가 올바르게 설치되었다고 가정하고 설치 경로는 기본적으로 그대로 유지됩니다.