CMake执行find_package(Vulkan)为何未输出相关环境变量?
解决CMake找到Vulkan但无法输出路径变量的问题
你的问题出在使用了错误的CMake变量名,新版本的FindVulkan模块不再设置全大写的VULKAN_LIBRARY和VULKAN_INCLUDE_DIRS变量,正确的变量名是驼峰格式的Vulkan_LIBRARIES(库路径,复数形式)和Vulkan_INCLUDE_DIRS。
修正后的CMake代码如下:
cmake_minimum_required(VERSION 3.22) project(VulkanTest) set(CMAKE_CXX_STANDARD 17) find_package(Vulkan REQUIRED) message("Vulkan found? " ${Vulkan_FOUND}) message("Library path: " ${Vulkan_LIBRARIES}) message("Include dirs: " ${Vulkan_INCLUDE_DIRS})
另外,更推荐使用现代CMake的依赖管理方式,直接通过导入目标Vulkan::Vulkan来链接,无需手动处理路径变量,代码示例:
cmake_minimum_required(VERSION 3.22) project(VulkanTest) set(CMAKE_CXX_STANDARD 17) find_package(Vulkan REQUIRED) # 添加你的可执行文件 add_executable(VulkanTest main.cpp) # 直接链接Vulkan目标,CMake会自动处理头文件和库路径 target_link_libraries(VulkanTest PRIVATE Vulkan::Vulkan)
执行修正后的代码,就能正常输出Vulkan的路径信息,同时现代CMake的方式也能避免手动管理路径带来的问题。
内容的提问来源于stack exchange,提问作者Ricardo Serrano
相关产品推荐
相关产品推荐

