2009-11-18 5 views
1

CUDA SDK에서 샘플 코드를 실행하는 동안이 오류가 발생합니다. 나는 CUDA 2.3 및 Visual Studio 2008CUDA 컴파일 오류

LINK가 : 치명적인 오류 LNK1181을 : 열려있는 입력 파일 'cutil32D.lib'

모든 포인터 방법이 문제를 해결 할 수없는 이유는 무엇입니까?

답변

1

MSVC 프로젝트에 연결할 라이브러리 cutil32D.lib이 있어야합니다. 링커가 마지막 바이너리 아티팩트에 포함해야하는 라이브러리로 지정하면이 문제는 사라집니다. 링커가 찾을 위치에 라이브러리가없는 것 같습니다. 라이브러리 검색 경로를 변경하거나 해당 파일을 링커가 이미 찾고있는 디렉토리로 이동해야합니다.

+0

비주얼 스튜디오 2008에서이를 수행하는 방법은 무엇입니까? – emkrish

+1

emkrish, Visual Studio 프로젝트의 속성을 열고 링커를 클릭하고 "추가 라이브러리 디렉토리"경로를 추가하십시오 Visual Studio 도움말 문서를 읽으십시오. http://msdn.microsoft.com/en-us/library /1xhzskbe.aspx –

5

SDK 샘플을 컴파일 중이므로 프로젝트 파일이 정확할 수 있습니다. 훨씬 더 가능성이 cutil 라이브러리를 구축하지 않은 것입니다. SDK 설치 디렉토리로 이동 한 다음 "C"디렉토리로 이동하십시오. "common"디렉토리가 보이고 거기에 cutil.sln 솔루션 (또는 VS2008의 경우 cutil_vc90.sln)을 열고 해당 플랫폼 용 릴리스 및 디버그 모드로 빌드하십시오.

그런 다음 샘플을 다시 시험해보십시오.

cutil 라이브러리는 모든 샘플에서 동일한 코드를 복제하는 것을 피하기 위해 사용됩니다. 자신 만의 프로젝트를 시작한다면 cutil 라이브러리를 재사용하지 않고 자신의 체커를 작성하지 않아도됩니다. 예를 들어, cutil에서와 같이 exit()를 호출하는 대신 CUDA 오류를 감지하면 정상적으로 실패해야합니다.

SDK에 포함 된 cuda.rules 파일을 사용하는 것이 좋습니다. 이 도구를 사용하면 .cu 파일을 모든 프로젝트에 추가 할 수 있으며 Visual Studio는이를 컴파일하고 최종 실행 파일에 링크하는 방법을 알게됩니다. 쉬운!

1

같은 문제가 발생했습니다. Cutil 프로젝트를 빌드해야 할뿐만 아니라 SDK의 공유 폴더 아래에 shrUtils 프로젝트를 빌드해야하는 것으로 나타났습니다.