当前位置: 首页 > news >正文

VulkanSDK Demos vkcube 编译失败

操作系统: Windows 11 23H2

Vulkan 版本: 1.3.2.280.0

Visual Studio 版本: 2022

在VulkanSDK/Demos目录下存在一个demo solution,其中包含两个project, vkcube和vkcubepp,两个分别为C语言和C++写的示例程序, 但是直接编译这两个project时会编译失败,报了以下错误:

fatal error C1189: #error:  To use volk, you need to define VK_NO_PROTOTYPES before including vulkan.h

根据提示这是由于两个project使用了volk库导致的,在使用volk库时,如果你include了vulkan.h, 必须在include声明之前define VK_NO_PROTOTYPES.

#define VK_NO_PROTOTYPES
#include <vulkan/vulkan.h>
#define VOLK_IMPLEMENTATION
#include "volk.h"

添加第一行的宏定义之后vkcube可以正常编译了,但是vkcubepp仍然报错:

vulkan_structs.hpp(67568,35): error C2589: '(': illegal token on right side of '::'
vulkan_structs.hpp(67568,30): error C2062: type 'unknown-type' unexpected

这是由于windows的系统头文件与C++标准库的头文件同时存在min这个函数, 因此发生了冲突,在cube.cpp里添加如下宏定义禁止min/max函数即可:

#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
#define VULKAN_HPP_NO_EXCEPTIONS
#define VULKAN_HPP_TYPESAFE_CONVERSION#define NOMINMAX
#define VK_NO_PROTOTYPES
#include <vulkan/vulkan.hpp>#define VOLK_IMPLEMENTATION
#include "volk.h"

添加第5, 6行的宏定义之后再次编译即可.

http://www.lryc.cn/news/347078.html

相关文章:

  • (二)Jetpack Compose 布局模型
  • 【Oracle impdp导入dmp文件(windows)】
  • 代数结构:5、格与布尔代数
  • 如何使用DEEPL免费翻译PDF
  • Spring-全面详解
  • QT自适应界面 处理高DPI 缩放比界面乱问题
  • 序列到序列模型在语言识别Speech Applications中的应用 Transformer应用于TTS Transformer应用于ASR 端到端RNN
  • 【Linux】- Linux环境变量[8]
  • 前端笔记-day04
  • 计算机字符集产生的历史与乱码
  • Rerank进一步提升RAG效果
  • 使用train.py----yolov7
  • 机器学习第37周周报 GGNN
  • Baidu Comate:释放编码潜能,革新软件开发
  • MATLAB的Bar3函数调节渐变色(内附渐变色库.mat及.m文件免费下载链接)
  • 使用 TensorFlow.js 和 OffscreenCanvas 实现实时防挡脸弹幕
  • 【计算机网络篇】数据链路层(10)在物理层扩展以太网
  • conan2 基础入门(03)-使用(msvc为例)
  • uniapp this 作用域保持的方法
  • vue2 与vue3的差异汇总
  • Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)
  • Scoop国内安装、国内源配置
  • 【软件开发规范篇】JAVA后端开发编程规范
  • 数据结构与算法学习笔记三---循环队列的表示和实现(C语言)
  • vue3中的reactive和ref
  • Centos安装 docker和docker-compose
  • VUE 或 Js封装通用闭包循环滚动函数
  • 个人所得税计算器
  • 网络工程师----第二十四天
  • 后端常用技能:基于easy-poi实现excel一对多、多对多导入导出【附带源码】