2016-11-22 2 views
0

Я пытаюсь проверить код, который недавно перешел в мои обязанности. Пока проекты CUDA перешли на меня, я не могу заставить [новый проект] работать в VS13 [Solution].Visual 2013/CUDA: Синтаксическая ошибка C2061 Идентификация текстуры, поверхность

Я создал проект выполнения CUDA 6.5. Я также добавил зависимости, необходимые для моего собственного кода. При компиляции я получаю несколько [ошибка C2061: Синтаксическая ошибка: идентификатор «поверхность»] или «текстура».

Я в настоящее время в недоумении относительно того, чего не хватает. Я бы предположил, что есть определенная зависимость, которую мне нужно добавить в проект, но трудно найти какие-либо релевантные ресурсы в Интернете при поиске этого сообщения об ошибке. Я уже добавил «compute_30, sm_30» в нужное место (т. Е. В том же месте, что и в проектах, которые компилируются).

РЕДАКТИРОВАТЬ: Релевантно, что ошибки метаданных в файле # включены в someClass.h, который включен в основную функцию.

Как указано ниже, проблема заключается в том, что файлы, специфичные для CUDA, включены в визуальный компилятор.

+0

На ваш вопрос не может быть дан ответ в текущей форме, так как он не содержит никакой соответствующей информации о коде или проблемах, с которыми вы столкнулись (кроме доли одного сообщения об ошибке). Улучшите свой вопрос, предоставив соответствующий код и точный результат из компилятора (окно вывода). – Drop

+0

Это потому, что я думал, что это проблема с настройками. Как указывает первый ответ, это не так. Редактирование. – Daimonie

ответ

1

Как обсуждалось в кросс-постинг here, основной причиной этой проблемы является то, что код, который включает в себя surface и texture ключевых слов в файле .h, который в конечном счете быть включены в .cpp файл

В проект VS CUDA, по умолчанию, файлы .cpp скомпилируются cl.exe, компилятором кода хоста Windows. .cu файлы скомпилированы nvcc, компилятором/драйвером NVIDIA GPU.

cl.exe не понимает ключевые слова surface или texture и поэтому выбрасывает указанные синтаксические ошибки.

Единственное решение организовать свой проект таким образом, чтобы эти конструкции появляются только в, или получить включены в файлы, которые будут процесс NVCC, что компилятор, который понимает surface и texture (и другие CUDA) ключевые слова.

Для справки существуют различные коды образцов CUDA (такие как this one), которые используют конструкцию поверхности и текстуры, а также код проекта, разделенный между .cpp и .cu файлами. Вы можете изучить их, если хотите, чтобы примеры того, как такие проекты могут быть организованы.

+0

Я столкнулся с той же проблемой, но ключевое слово 'текстуры 'находится в файле' cu'. Как это может произойти? Я нахожусь в Visual Studio 2015 и Windows 10. – user3667089

Смежные вопросы