引用cuda_runtime.h文件,在cpp源文件中引用,可以编译运行,但在h头文件中引用却不可以?

问题描述

散了吧~把之前的编译结果都删除了重新编译就好了。。。

环境:qtcreator 工程
引用cuda_runtime.h文件,在cpp源文件中引用,可以编译运行,但在h头文件中引用却不可以?

问题出现的环境背景及自己尝试过哪些方法

在cpp中引用是这么写的

#include "gpucalculatethread.h"
#include <cuda_runtime.h>
#include <cublas_v2.h>
#include <helper_cuda.h>

.pro文件是这么写的

INCLUDEPATH += \
            $$(CUDA_COMMON_PATH)  \
            $$(CUDA_INCLUDE_PATH) \
            $$(VTK_INCLUDE_PATH)  \
            ../../Include

此时编译运行良好;

我将其改到头文件里

#include <cuda_runtime.h>
#include <cublas_v2.h>
#include <helper_cuda.h>

编译就报错

fatal error C1083: 无法打开包括文件: “cuda_runtime.h”: No such file or directory

后来我修改了头文件里的引用,改成了绝对路径

#include "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2/include/cuda_runtime.h"
#include "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2/include/cublas_v2.h"
#include "C:/ProgramData/NVIDIA Corporation/CUDA Samples/v9.2/common/inc/helper_cuda.h"

再次报错

c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\cublas_api.h(75): fatal error C1083: 无法打开包括文件: “cuda_fp16.h”: No such file or directory

我又修改了.pro文件

INCLUDEPATH += \
            #$$(CUDA_COMMON_PATH)  \
            #$$(CUDA_INCLUDE_PATH) \
            $$(VTK_INCLUDE_PATH)  \
            "C:/ProgramData/NVIDIA Corporation/CUDA Samples/v9.2/common/inc/" \
            "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2/include/" \
            ../../Include

相同的错误提示

c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\cublas_api.h(75): fatal error C1083: 无法打开包括文件: “cuda_fp16.h”: No such file or directory

这个<cuda_fp16.h>是在cublas_api.h里被引用的。
在源文件里引用.h文件和在.h里引用头文件在编译时有什么区别?
我该怎么改?
请大佬指点一下~需要补充什么信息请指明。

阅读 11.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题