CMake 配置 Vulkan 出现链接失败,找不到 vkEnumerateInstanceExtensionProperties 符号的错误的解决方法

使用 CMake 配置 glfw, glm 的时候,总是提示链接失败,找不到 vkEnumerateInstanceExtensionProperties 符号

cmake_minimum_required(VERSION 3.4...3.27)if(${CMAKE_VERSION} VERSION_LESS 3.27)cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
else()cmake_policy(VERSION 3.27)
endif()project(VulkanTest VERSION 1.0DESCRIPTION "Learning Vulkan"LANGUAGES CXX)# ---- Include guards ----
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
message(FATAL_ERROR"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there."
)
endif()set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)add_executable(VulkanTest src/test.cpp src/test.h)# vulkan sdktarget_include_directories(VulkanTest PUBLIC $ENV{VULKAN_SDK}/Include)
target_link_libraries(VulkanTest $ENV{VULKAN_SDK}/Lib)# link glfw with cmake guide: 
# https://www.glfw.org/docs/3.3/build_guide.html# don't compile exampleset(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)add_subdirectory(dependencies/glfw)target_include_directories(VulkanTest PUBLIC dependencies/glfw/include)
target_link_libraries(VulkanTest glfw)# glmadd_subdirectory(dependencies/glm)target_include_directories(VulkanTest PUBLIC dependencies/glm)
target_link_libraries(VulkanTest glm)

这很明显就是链接不到 Vulkan SDK 的库,但是我觉得我这么写应该没有问题

我还以为是要把 Vulkan SDK 的 lib 文件复制到 exe 目录底下什么的,我还在想要不要用 install

之后我看别人的仓库,别人都没有用 install,于是我再仔细看,最后发现别人不是 link 到文件夹,而是 link 到一个 lib 文件,所以我应该这么写:target_link_libraries(VulkanTest $ENV{VULKAN_SDK}/Lib/vulkan-1.lib),然后就好了

本来我 link 到一个文件夹的时候,cmake 在控制台输出那里也提示了,会忽略掉这一行……果然是因为我不能 link 到一个文件夹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UG NX二次开发(C#)-CAM-获取刀具类型

文章目录 1、前言2、UG NX中的刀具类型3、获取刀具类型3.1 刀具类型帮助文档1、前言 在UG NX的加工模块,加工刀具是一个必要的因素,其包括了多种类型的类型,有铣刀、钻刀、车刀、磨刀、成型刀等等,而且每种刀具所包含的信息也各不相同。想获取刀具的信息,那就要知道刀具的…

2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求

音乐在人们心中的地位日益增高,近几年音乐选秀的节目更是层出不穷,喜爱音乐,创作音乐的朋友们也是越来越多,音乐的类型有很多,好比古典,流行,摇滚等等。对新手友好程度基本上在首位,…

用Python画多个圆圈代码

编辑:2023-08-13 15:10 在Python中,我们可以使用turtle库来绘制各种形状,包括圆圈。这是一个相当基本的问题,但是对于新手程序员来说,它可能会很有用。在这篇文章中,我们将向你展示如何使用Python的turtle…

【报童模型】随机优化问题二次规划

面对需求的不确定性,报童模型是做库存优化的常见模型。而标准报童模型假设价格是固定的,此时求解一个线性规划问题,可以得到最优订货量,这种模型存在局限性。因为现实世界中价格与需求存在一定的关系,本文假设需求q是价…

LNMP环境介绍和搭建

一.LNMP简介 1.含义 2.工作原理 二.部署LNMP环境 1.Nginx环境 (1)上传nginx包,下载编译安装工具并解包到指定目录(tar 参数 tar包 - C 目录路径) (2) 开始编译安装,每次编译后…

nbcio-boot升级到3.1后出现online表单新增报错

nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错,如下: 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…

【JVM】JVM垃圾收集器

文章目录 什么是JVM垃圾收集器四种垃圾收集器(按类型分)1.串行垃圾收集器(效率低)2.并行垃圾收集器(JDK8默认使用此垃圾回收器)3.CMS(并发)垃圾收集器(只针对老年代垃圾回收的)4.G1垃圾回收器(在…

设计模式之七:适配器模式与外观模式

面向对象适配器将一个接口转换成另一个接口,以符合客户的期望。 // 用火鸡来冒充一下鸭子class Duck { public:virtual void quack() 0;virtual void fly() 0; };class Turkey { public:virtual void gobble() 0;virtual void fly() 0; };class TurkeyAdapter :…

利用爬虫爬取图片并保存

1 问题 在工作中,有时会遇到需要相当多的图片资源,可是如何才能在短时间内获得大量的图片资源呢? 2 方法 我们知道,网页中每一张图片都是一个连接,所以我们提出利用爬虫爬取网页图片并下载保存下来。 首先通过网络搜索…

Linux 1.2.13 -- IP分片重组源码分析

Linux 1.2.13 -- IP分片重组源码分析 引言为什么需要分片传输层是否存在分段操作IP分片重组源码分析ip_createip_findip_frag_createip_doneip_glueip_freeip_expireip_defragip_rcv 总结 本文源码解析参考: 深入理解TCP/IP协议的实现之ip分片重组 – 基于linux1.2.13 计网理论…

树莓派RP2040 用Arduino IDE安装和编译

目录 1 Arduino IDE 1.1 IDE下载 1.2 安装 arduino mbed os rp2040 boards 2 编程-烧录固件 2.1 打开点灯示例程序 2.2 选择Raspberry Pi Pico开发板 2.3 编译程序 2.4 烧录程序 2.4.1 Raspberry Pi Pico开发板首次烧录提示失败 2.4.2 解决首次下载失败问题 2.4.2.1…

curl 快速入门使用教程

你好,我是悦创。 curl 是一个强大的命令行工具,用于获取或发送数据,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 或 FILE 协议等。在本教程中,我们将主要介绍如何使用 curl 进行 HTTP/HTTPS 请求。 1. 安…

Java基础五之for循环小练习

加油,新时代大工人! 一、Java基础之算术运算符 二、Java基础之类型转换 三、Java基础之【字符串操作以及自增自减操作】 四、Java基础之赋值运算符和关系运算符 package base;import java.io.InputStream; import java.util.Scanner;/*** author wh* date 2023年08…

无涯教程-Perl - recv函数

描述 This function receives a message on SOCKET attempting to read LENGTH bytes, placing the data read into variable SCALAR.The FLAGS argument takes the same values as the recvfrom( ) system function, on which the function is based. When communicating wit…

论文浅尝 | 面向多步推理任务专业化较小语言模型

笔记整理:张沈昱,东南大学硕士,研究方向为自然语言处理 链接:https://github.com/FranxYao/FlanT5-CoT-Specialization 动机 本文的动机是探索如何在多步推理任务中通过大型语言模型提升较小的语言模型的性能。作者认为&#xff0…

云开发超多功能工具箱组合微信小程序源码/附带流量主

介绍: 这是一款云开发超多功能工具箱组合微信小程序源码附带流量主功能,小程序内包含了40余个功能,堪称全能工具箱了,大致功能如下: 证件照制作 | 垃圾分类查询 | 个性签名制作 二维码生成丨文字九宫格 | 手持弹幕丨…

总结synchronized

一.synchronized的特性 synchronized 是 Java 语言中内置的关键字,用于实现线程同步,以确保多线程环境下共享资源的安全访问。 互斥性:synchronized保证了同一时刻只有一个线程可以执行被synchronized修饰的代码块或方法。当一个线程进入sync…

使用GraphQL在Postman中进行API测试

GraphQL 是一种用于API的开源数据查询和操作语言,用于API的查询语言和运行时。它使客户端能够精确地指定其数据需求,并获得预测性地结果。GraphQL旨在提高API的效率、灵活性和可靠性。 Postman 是一款用于API开发的强大工具,它支持REST和Gra…

LVS简介及LVS-DR搭建

目录 一. LVS简介: 1.简介 2. LVS工作模式: 3. LVS调度算法: 4. LVS-DR集群介绍: 二.LVS-DR搭建 1.RS配置 1)两台RS,需要下载好httpd软件并准备好配置文件 2)添加虚拟IP(vip&…

Python爬虫——requests_cookie登陆古诗文网

寻找登陆需要的参数 __VIEWSTATE:aiMG0UXAfCzak10C7436ZC/RXoZbM2lDlX1iU/4wjjdUNsW8QUs6W2/3M6XIKagQZrC7ooD8Upj8uCnpQMXjDAp6fS/NM2nGhnKO0KOSXfT3jGHhJAOBouMI3QnlpJCQKPXfVDJPYwh169MGLFC6trY __VIEWSTATEGENERATOR: C93BE1AE from: http://so.gushiwen.cn/user/collect.…