Ошибка компиляции: g ++ — v4 / tr1_impl / type_traits (226): ошибка: ожидается идентификатор

Ошибка генерируется, когда Makefile пытается скомпилировать файл .cu (CUDA).

Мы смогли скомпилировать это самостоятельно с помощью .hpp, созданного специально для него. Когда мы пытаемся заставить его скомпилироваться в существующий заголовок с собственным .cpp (другими словами .hpp, .cpp плюс .cu), мы продолжаем получать эту странную ошибку компиляции.

Для удобства чтения все последующие сообщения имеют префикс этого каталога:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.4/include/g++-v4/tr1_impl/

Сообщения:

type_traits(226): error: expected an identifier
type_traits(227): error: expected a ")"type_traits(227): error: a template argument list is not allowed in a declaration of a primary template

type_traits(229): error: expected an identifier
type_traits(230): error: expected a ")"type_traits(230): error: a template argument list is not allowed in a declaration of a primary template

type_traits(232): error: expected an identifier
type_traits(233): error: expected a ")"type_traits(233): error: expected a ">"
type_traits(235): error: expected an identifier
type_traits(236): error: expected a ")"type_traits(236): error: expected a ">"
type_traits(238): error: expected an identifier
type_traits(239): error: expected a ")"type_traits(239): error: expected a ">"
type_traits(241): error: expected an identifier
type_traits(242): error: expected a ")"type_traits(242): error: expected a ">"
type_traits(244): error: expected an identifier
type_traits(245): error: expected a ")"type_traits(245): error: expected a ">"
type_traits(247): error: expected an identifier
type_traits(248): error: expected a ")"type_traits(248): error: expected a ">"

Возможно ли иметь единственный .hpp с .cu и .cpp позади него?

0

Решение

Да, это возможно, и на самом деле очень распространено, но если .hpp включает файлы, которые nvcc не может создать, то вы не можете включить его из .cu.

Вы могли бы использовать #ifndef __CUDACC__ вокруг этих файлов, чтобы они не включались при компиляции .cu с помощью nvcc.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector