Компиляция примеров CUDA дает ошибку сборки - PullRequest
5 голосов
/ 05 января 2010

Я использую 64-разрядную версию Windows 7 с Visual Studio 2008. Я установил драйверы CUDA и SDK. SDK поставляется с несколькими примерами, включая скомпилированные исполняемые файлы и исходный код. Скомпилированные исполняемые файлы работают прекрасно. Когда я открываю решения vc90 и перехожу к конфигурации Win32, я получаю эту ошибку:

Error   1   fatal error LNK1181: cannot open input file '.\Release\bandwidthTest.cu.obj'    bandwidthTest   bandwidthTest

Журнал сборки:

1>------ Build started: Project: bandwidthTest, Configuration: Release Win32 ------
1>Compiling with CUDA Build Rule...
1>"C:\CUDA\bin64\nvcc.exe"    -arch sm_10 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"    -Xcompiler "/EHsc /W3 /nologo /O2 /Zi   /MT  " -I"C:\CUDA\include" -I"../../common/inc" -maxrregcount=32  --compile -o "Release\bandwidthTest.cu.obj" "c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\bandwidthTest\bandwidthTest.cu" 
1>nvcc fatal   : Visual Studio configuration file '(null)' could not be found for installation at 'c:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/../..'
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file '.\Release\bandwidthTest.cu.obj'
1>Build log was saved at "file://c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\bandwidthTest\Release\BuildLog.htm"
1>bandwidthTest - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Если я пытаюсь скомпилировать в x64, он вообще не собирается, а просто пропускает проект

1>------ Skipped Build: Project: bandwidthTest ------
1> 
========== Build: 0 succeeded or up-to-date, 0 failed, 1 skipped ==========

Я новичок в C ++, некоторое время занимался C #. Я уверен, что есть что-то маленькое, что мне не хватает, но любые подсказки, которые вы могли бы предоставить, будут оценены.

Ответы [ 3 ]

2 голосов
/ 06 января 2010

Вы видите неправильное сообщение об ошибке.

Файл .obj не существует, поскольку не удалось выполнить этап компиляции nvcc.

nvcc fatal   : Visual Studio configuration file '(null)' could not be found for installation at 'c:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/../..'
2 голосов
/ 05 января 2010

Проверьте, установлен ли у вас x64 компилятор. Затем измените тип проекта на x64. У меня была такая же проблема при попытке скомпилировать 32-битную программу cuda с 64-битной Win7.

Также убедитесь, что вы добавили 64-битные библиотеки и включили их в путь поиска.

1 голос
/ 05 января 2010

Вы должны убедиться, что все инструменты совпадают. Поэтому, если у вас установлен 64-битный компилятор Visual Studio, вам следует установить 64-битную версию инструментария CUDA.

Если у вас есть только 32-битный компилятор Visual Studio, тогда вы сможете установить 32-битный инструментарий CUDA. В идеале вы должны установить все 64-битные инструменты. Затем вы сможете создавать как 64-битные, так и 32-битные примеры (кросс-компиляции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...