Ошибка компиляции CUDA из командной строки - PullRequest
32 голосов
/ 14 ноября 2011

Я пытаюсь скомпилировать тестовую программу cuda в Windows 7 через командную строку, Я эта команда:

nvcc test.cu

Но все, что я получаю, это ошибка:

nvcc fatal : Cannot find compiler 'cl.exe' in PATH

Что может быть причиной этой ошибки?

Ответы [ 5 ]

38 голосов
/ 14 ноября 2011

Вам потребуется добавить папку, содержащую файл «cl.exe», в переменную окружения вашего пути.Например:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

Редактировать : ОК, перейдите в Мой компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды.Здесь найдите «PATH» в списке и добавьте путь выше (или как там находится ваш cl.exe).

16 голосов
/ 30 июля 2014

Решите эту проблему, добавив эти параметры в nvcc

nvcc x.cu ...   -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin"

, например, мой компилятор VS2012.и cl.exe находится в этом каталоге

3 голосов
/ 14 ноября 2011

cl.exe - это компилятор Microsoft C / C ++.Так что проблема в том, что у вас не установлено то место, где его может найти командная строка.

1 голос
/ 14 ноября 2011

nvcc - это только внешний интерфейс для специфической части программы CUDA. Он должен вызвать полный компилятор, чтобы закончить работу. В этом случае он не может найти компилятор Visual Studio 'cl.exe'

Проверка путей, документации nvcc и т. Д.

0 голосов
/ 14 марта 2014

Я вижу, что это старый вопрос, но недавно я получил эту ошибку в Visual Studio 2012, когда пытался построить свой проект CUDA. Очевидно, я изменил свой проект CUDA на пакет от ноября 2012 года, вернув его обратно к v110, что обычно по умолчанию исправляет эту ошибку.

В Visual Studio щелкните левой кнопкой мыши проект CUDA, -> свойства-> Свойства конфигурации-> Общие -> Набор инструментов платформы и выберите: Visual Studio 2012 (v110).

Я, вероятно, мог бы заставить его работать с пакетом от ноября 2012 года, но код CUDA не использует никаких дополнительных функций этого пакета, так что в этом нет необходимости. (Этот пакет содержит шаблоны переменных для C ++ 11.)

...