包含 .h 时,CUDA 报告未解决的包含

Posted

技术标签:

【中文标题】包含 .h 时,CUDA 报告未解决的包含【英文标题】:CUDA report unresolved inclusion when including .h 【发布时间】:2015-12-15 17:49:23 【问题描述】:

我正在使用 Visual Studio 2013、C++ 编写 Qt 项目。我正在使用 CUDA 来加速计算。一切顺利,直到我将自己的头文件“autostitch.h”包含到我的 CUDA 文件“test.cuh”或“test.cu”中,VS 报告编译错误“未解决的 autostitch.h 包含”。

我需要在 autostitch.h 中进行一些常量声明。如何包含它并使用常量?


这个问题已经解决了。我没有正确地将文件添加到项目中。这些文件位于另一个文件夹中。将现有文件添加到项目中时,我应该将它们复制到项目的文件夹中,或者将外部路径添加到搜索路径中。

【问题讨论】:

MS VC 编译器生成fatal error C1083: Cannot open include file: 'xxx.h' 错误,而不是unresolved inclusion。无论如何,这个头文件是否与包含它的头文件在同一目录中?还是在“包含路径”上? 这就是问题所在!我没有正确地将文件添加到项目中。这些文件位于另一个文件夹中。谢谢你! 【参考方案1】:

问题可能是“autostitch.h”不在搜索包含文件的文件夹中。

当您在包含 (#include "autostitch.h") 中使用引号时,编译器通常配置为仅搜索与源文件(例如,autostitch.cpp)所在的文件夹相同的文件夹。如果您改用尖括号 (#include <autostitch.h>),编译器通常会搜索更多位置。

顺便说一句,在问题中包含确切的错误消息很重要。不仅是为了获得更好的答案,也是为了让其他人在将错误插入搜索引擎时找到 QA。

【讨论】:

这就是问题所在!我没有正确地将文件添加到项目中。这些文件位于另一个文件夹中。谢谢你!

以上是关于包含 .h 时,CUDA 报告未解决的包含的主要内容,如果未能解决你的问题,请参考以下文章

带有前向声明的循环包含和继承导致 C2504 基类未定义

使用来自另一个文件夹的源代码时未解决的外部问题

如何在 Eclipse IDE 中删除用户定义路径的错误“未解决的包含”

如何解决此错误“CoreText/CTParagraphStyle.h”文件未找到?

在 Eclipse 上导入的 Makefile 项目:未列出的源和未解决的包含项

VS2013未定义标示符