2014-06-08 8 views
2

Visual Studio 2012 및 CUDA 6.0 툴킷을 설치했습니다. 새 프로젝트를 시작하고 CUDA 6.0 Runtime을 선택할 수는 있지만 컴파일하려고하면 오브젝트 파일을 찾을 수 없습니다.VS2012에서 cuda 컴파일 중 : 치명적인 오류 C1083 : 컴파일러에서 생성 한 파일을 열 수 없습니다. 해당 파일 또는 디렉토리가 없습니다.

이것은 CUDA 프로젝트를 만들 때 제공되는 샘플 코드의 출력물입니다. CUDA 구문이없는 일반 C 프로그램 일지라도 같은 문제가 발생합니다.

1>------ Build started: Project: Temp, Configuration: Debug Win32 ------ 
1>Build started 08/06/2014 13:14:40. 
1>PrepareForBuild: 
1> Creating directory "d:\my documents\visual studio 2012\Projects\Temp\Debug\". 
1>InitializeBuildStatus: 
1> Creating "Debug\Temp.unsuccessfulbuild" because "AlwaysCreate" was specified. 
1>CudaBuild: 
1> Compiling CUDA source file kernel.cu... 
1> 
1> D:\Programming>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2012 -ccbin "D:\Programs\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -G --keep-dir Debug -maxrregcount=0 --machine 32 --compile -cudart static -g -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd " -o Debug\kernel.cu.obj "d:\my documents\visual studio 2012\Projects\Temp\Temp\kernel.cu" 
1>nvcc : warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release. 
1> kernel.cu 
1>C:\Users\Mort\AppData\Local\Temp\tmpxft_00001d3c_00000000-20_kernel.ii : fatal error C1083: Cannot open compiler generated file: 'Debug/kernel.cu.obj': No such file or directory 
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\CUDA 6.0.targets(597,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2012 -ccbin "D:\Programs\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -G --keep-dir Debug -maxrregcount=0 --machine 32 --compile -cudart static -g -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd " -o Debug\kernel.cu.obj "d:\my documents\visual studio 2012\Projects\Temp\Temp\kernel.cu"" exited with code 1. 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:03.36 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

내가 Win7에 64 비트 및 VS 2012 궁극을 실행 해요 :

여기 kernel.cu 구축 할 때 내가 얻을 전체 출력됩니다.

감사합니다.

+0

nvcc가 obj 파일을 컴파일하는 경로를 다시 선택할 수 있습니까? 프로젝트 경로와 nvcc의 경로 ("D : \ Programming") 사이에 불일치가있을 수 있습니다. –

+0

nvcc가 D : \ Programming을 얻은 곳이 어디인지 모릅니다. 방금 VS와 Cuda를 며칠 전에 설치했는데 그 디렉토리에서 그곳을 지적하지 않았으므로 어딘가에 뭔가 어딘가에 머물러 있었을 것입니다. 혹시 nvcc 컴파일 경로를 찾고 변경하는 방법을 알려주시겠습니까? – user3511582

+0

좋아, 그래서 D : \ Programming에 대한 레지스트리를 검색하고 내가 설정 한 키를 발견했다. 나는 그 디렉토리에 명령 프롬프트를 디폴트로 가지고 있다고 생각한다. 내가 그 열쇠를 삭제하고 지금은 모든 것이 잘 컴파일됩니다. 그 점을 지적 해 주셔서 감사합니다. 그렇지 않으면 그것을 찾지 않을 것입니다. – user3511582

답변

3

NVCC의 경로 (D:\Programming)와 프로젝트 경로가 일치하지 않는 것 같습니다. 문제가 해결되어 답변을 드리겠습니다.

잘못된 디렉토리에 내용을 컴파일 한 다음 이전 단계에서 생성 한 임시 파일을 찾지 못하게 될 수 있습니다. 해당 경로를 수정해야하며 다른 모든 항목 (예 : 비트/경로 포함)이 적용되므로 컴파일이 제대로 진행되어야합니다.

관련 문제