首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VkPipelineInfoEXT不存在

VkPipelineInfoEXT不存在
EN

Stack Overflow用户
提问于 2022-05-18 14:16:36
回答 1查看 81关注 0票数 0

最近,我正在为Vulkan学习一个名为vkguide.dev的教程。

我读过第1章第2部分,名为(https://vkguide.dev/docs/chapter-1/vulkan_init_code/),本教程使用一个引导库来对Vulkan(https://github.com/charles-lunarg/vk-bootstrap/)进行初始化。

但是,当我在VKBootstrapDispatch.h文件中使用库时,第2318行的clang/cmake抱怨VkPipelineInfoEXT不是有效类型。它建议使用VkPipelineInfoKHR,但是当我切换类型时,我的代码说arm64有未定义的符号,所有这些函数都与库有关。

我在网上找不到任何关于这件事的东西,所以如果你能帮忙的话,那就太好了。我会附上一些截图。

这些错误是:

VkPipelineInfoEXT不存在,VkPipelineInfoKHR工作,但是它说vulkan函数是未定义的符号。

当我用KHR代替EXT时,就是这样说的。

代码语言:javascript
复制
_vkDestroyDevice", referenced from:
  VulkanEngine::Cleanup() in VkEngine.cpp.o

"_vkDestroyImageView", referenced from:
      VulkanEngine::Cleanup() in VkEngine.cpp.o

  "_vkDestroyInstance", referenced from:
  VulkanEngine::Cleanup() in VkEngine.cpp.o

  "_vkDestroySurfaceKHR", referenced from:
  VulkanEngine::Cleanup() in VkEngine.cpp.o

  "_vkDestroySwapchainKHR", referenced from:
  VulkanEngine::Cleanup() in VkEngine.cpp.o
ld: symbol(s) not found for architecture arm64

CMakeLists.txt

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.13)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY)                               CMAKE_SOURCE_DIR}/build/debu

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS "-std=c++17 -O3")

project(Vulkan-Raytracing-Project)

add_executable(Vulkan-Raytracing
    ${CMAKE_SOURCE_DIR}/src/main.cpp
    ${CMAKE_SOURCE_DIR}/src/VkEngine.cpp
    ${CMAKE_SOURCE_DIR}/lib/vkbootstrap/VkBootstrap.cpp
)

find_package(SDL2 REQUIRED)
find_package(Vulkan REQUIRED)
message(STATUS "Found SDL2")
message(STATUS "Found Vulkan")
# target_link_libraries(Vulkan-Raytracing PUBLIC SDL2         ${CMAKE_DL_LIBS})

target_link_libraries(Vulkan-Raytracing ${SDL2_LIBRARIES}     $    {VULKAN_LIBRARIES})

# target_link_directories(Vulkan-Raytracing PUBLIC     "${CMAKE_SOURCE_DIR}/lib/SDL")
# target_link_libraries(Vulkan-Raytracing PUBLIC libSDL2maind.a)

# target_link_libraries(Vulkan-Raytracing         ${CMAKE_SOURCE_DIR}/lib/SDL/libSDL2maind.a)

target_include_directories(Vulkan-Raytracing PRIVATE
    ${SDL2_INCLUDE_DIRS}
    ${VULKAN_INCLUDE_DIRS}
    "${CMAKE_SOURCE_DIR}/include"
    "${CMAKE_SOURCE_DIR}/src"
    "/Users/nick/VulkanSDK/1.3.211.0/macOS/include"
)

EN

回答 1

Stack Overflow用户

发布于 2022-05-18 16:32:24

很抱歉回答了我自己的问题,但事实证明Vulkan并没有正确地链接,我还包括了随sdk一起提供的.dylib,并且构建成功了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72290873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档