NCNN – Windows编译NCNN项目出现无法打开包括文件vulkan.h的错误
1 问题
这两天在Windows上使用NCNN进行模型部署,在VS项目中配置好NCNN的头文件、lib之后,编译项目出现了以下错误
fatal error C1083: 无法打开包括文件: “vulkan/vulkan.h”: No such file or directory
我这里使用的ncnn是Github仓库上的预编译库,库的版本是20230223 ff80ac2,下载的是ncnn-20230223-windows-vs2019-shared.zip,使用这个库进行的项目配置,如下图所示
2 原因
通过仔细看ncnn预编译包的发布文档,我们看到ncnn-windows的发布包都是默认支持GPU的,所有说需要Vulkan的支持,但是我的电脑上没有安装Vulkan的SDK,也没有在项目中配置Vulkan的路径,所以就出现找不到vulkan.h
的编译错误了。
3 解决方法
3.1 需要GPU进行模型部署、推理
如果你确实需要使用GPU对模型进行推理,那么就必须要下载Vulkan安装,然后在项目中配置Vulkan的环境。
Vulkan SDk的下载地址:https://vulkan.lunarg.com/sdk/home ,下载最新的版本安装即可,安装完成之后会得到相应的Include、Lib、Bin目录,然后在NCNN的项目中配置即可。
3.2 不需要GPU进行模型部署、推理
如果你不需要使用GPU,只需要使用CPU,那么这个时候提供了两种方法可以解决编译错误。
3.2.1 修改相关的头文件
这是一个绕过编译错误的trick,为什么ncnn的windows发布包默认使用Vulkan,是因为定义了
#define NCNN_VULKAN 1
所以如果我们不需要使用Vulkan,那么直接修改ncnn的头文件platform.h
,将
#define NCNN_VULKAN 1
这一行修改为
#define NCNN_VULKAN 0
即可。
3.2.2 重新编译不使用Vulkan的ncnn库
编译的教程可参考:https://www.stubbornhuang.com/2556/
我们在CMake时将-DNCNN_VULKAN=OFF
设置成OFF即可,编译完成之后重新引入项目即可编译成功。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:NCNN – Windows编译NCNN项目出现无法打开包括文件vulkan.h的错误
原文链接:https://www.stubbornhuang.com/2558/
发布于:2023年03月22日 10:29:55
修改于:2023年06月21日 16:54:14
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52