0
當Makefile嘗試編譯.cu(CUDA)文件時,會生成此錯誤。編譯錯誤:g ++ - v4/tr1_impl/type_traits(226):錯誤:預期標識符
我們可以自己編譯這個.hpp是專門爲它編寫的.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單.HPP和背後有一個.cpp?
是的,但如果.hpp包含nvcc無法構建的文件,則無法將其包含在.cu中。你可以在這些文件周圍使用'#ifndef __CUDACC__',這樣在使用nvcc編譯.cu時就不會包含它們。 – harrism
你能提供一個列表,包括你在編譯失敗的文件中包含的#includes,以及編譯命令行嗎? – harrism
@harrism - (+1)你是完全正確的。讓你的評論一個正確的答案,我會給你點頭。 – Zak