0

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 ">"

.cuと.cppが背後にある単一の.hppを持つことは可能ですか?

4

1 に答える 1

1

はい、可能であり、実際には非常に一般的ですが、.hpp に nvcc がビルドできないファイルが含まれている場合、.cu からそれを含めることはできません。

#ifndef __CUDACC__nvcc で .cu をコンパイルするときに含まれないように、これらのファイルの周りを使用できます。

于 2012-11-05T00:09:27.380 に答える