在 vk_chopper 上使用 cmake 时出错

Posted

技术标签:

【中文标题】在 vk_chopper 上使用 cmake 时出错【英文标题】:Error when using cmake on vk_chopper 【发布时间】:2017-05-29 20:04:27 【问题描述】:

所以,我想在 ubuntu 16.10 上安装 Vulkan。 我决定关注这个guide

不幸的是,在第 9 步到达 Choppa 时,我遇到了一个错误。

cmake .. 对我不起作用;这就是发生的事情

日志

ra141@ra141:~$ cd ~/vulkan ra141@ra141:~/vulkan$ cd gl_vk_chopper ra141@ra141:~/vulkan/gl_vk_chopper$ cd build ra141@ra141:~/vulkan/gl_vk_chopper/build$ rm -rf ./* ra141@ra141:~/vulkan/gl_vk_chopper/build$ export VK_SDK_PATH=/home/ra141/vulkan/VulkanSDK ra141@ra141:~/vulkan/gl_vk_chopper/build$ cmake .. -- C 编译器标识为 GNU 6.2.0 -- CXX 编译器标识为 GNU 6.2.0 -- 检查工作的 C 编译器:/usr/bin/cc -- 检查工作的 C 编译器:/usr/bin/cc -- 工作 -- 检测 C 编译器 ABI 信息 -- 检测 C 编译器 ABI 信息 - 完成 -- 检测 C 编译特性 -- 检测 C 编译特性 - 完成 -- 检查工作的 CXX 编译器:/usr/bin/c++ -- 检查工作的 CXX 编译器:/usr/bin/c++ -- 工作 -- 检测 CXX 编译器 ABI 信息 -- 检测 CXX 编译器 ABI 信息 - 完成 -- 检测 CXX 编译特性 -- 检测 CXX 编译特性 - 完成


-- 处理项目 gl_vk_chopper: -- BASE_DIRECTORY = /home/ra141/vulkan/gl_vk_chopper/.. -- CMAKE_CURRENT_SOURCE_DIR = /home/ra141/vulkan/gl_vk_chopper -- 在 /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so 中寻找 XOpenDisplay -- 在 /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so 中寻找 XOpenDisplay - 找到 -- 寻找 gethostbyname -- 寻找 gethostbyname - 找到 -- 寻找连接 -- 寻找连接 - 找到 -- 寻找删除 -- 寻找删除 - 找到 -- 寻找 shmat -- 寻找 shmat - 找到 -- 找到 X11:/usr/lib/x86_64-linux-gnu/libX11.so -- 找到 OpenGL:/usr/lib/x86_64-linux-gnu/libGL.so -- 找到 GLEW:/home/ra141/vulkan/shared_sources/glew/include -- 找不到 GLFW(缺少:GLFW_INCLUDE_DIR GLFW_LIBRARY) -- 找到 Glew 源代码。使用它而不是库 -- VulkanSDK 搜索路径: -- VulkanSDK 版本: /home/ra141/vulkan/shared_sources/cmake/FindVulkanSDK.cmake:133 处的 CMake 警告(消息):

    VULKANSDK not found. 
    either env. VK_SDK_PATH should be set directly to the right version to use (C:\VulkanSDK\1.0.1.1)
    or you can specify in cmake VULKANSDK_LOCATION to the folder where VulkanSDK versions are put (C:\VulkanSDK)

调用堆栈(最近调用优先): /home/ra141/vulkan/shared_sources/CMakeLists_include.txt:341 (find_package) CMakeLists.txt:44 (_add_package_VulkanSDK)

-- Vulkan 根目录:VULKANSDK_ROOT_DIR-NOTFOUND -- Vulkan 包括:VULKANSDK_INCLUDE_DIR-NOTFOUND -- Vulkan 库:VULKAN_LIB-NOTFOUND -- 找不到 VULKANSDK(缺少:VULKANSDK_INCLUDE_DIR VULKAN_LIB) -- --> 不使用包 VulkanSDK -- --> 使用包 AntTweakBar -- 找到 ANTTWEAKBAR:/usr/include CMake 错误:此项目中使用了以下变量,但它们设置为 NOTFOUND。 请设置它们或确保它们在 CMake 文件中正确设置和测试: X11_Xcursor_LIB(高级) 由目录 /home/ra141/vulkan/gl_vk_chopper 中的目标“gl_vk_chopper”链接 由目录 /home/ra141/vulkan/gl_vk_chopper 中的目标“gl_vk_chopper”链接 由目录 /home/ra141/vulkan/shared_sources 中的目标“shared_sources”链接 X11_Xinerama_LIB(高级) 由目录 /home/ra141/vulkan/gl_vk_chopper 中的目标“gl_vk_chopper”链接 由目录 /home/ra141/vulkan/gl_vk_chopper 中的目标“gl_vk_chopper”链接 由目录 /home/ra141/vulkan/shared_sources 中的目标“shared_sources”链接

-- 配置不完整,出现错误! 另请参阅“/home/ra141/vulkan/gl_vk_chopper/build/CMakeFiles/CMakeOutput.log”。 ra141@ra141:~/vulkan/gl_vk_chopper/build$

请帮忙?

【问题讨论】:

你做了错误要求的事情吗?设置VK_SDK_PATH 或将VULKANSDK_LOCATION 传递给CMake? 我实际上不知道该怎么做。那我该怎么做。是export VK_SDK_PATH=/path/to/vulkan/SDK.根据 ivan_onys 的建议 您安装了哪个版本的 Vulcan?您需要将其指向那里并按照@ivan_onys 的说明进行操作,或者您可以将其直接传递给 CMake,如 cmake .. -DVULKAN_LOCATION=/path/to/Vulkan/SDK 【参考方案1】:

在运行cmake之前,运行以下命令export VK_SDK_PATH=/path/to/vulkanSDK/version

注意,应该是完整路径(以/开头)

小心从build 文件夹运行 cmake ..。从日志中,您似乎从 build 文件夹的子文件夹开始 cmake。更好的是,在重新运行 cmake 之前清理它:

cd build
rm -rf ./*
cmake ..

【讨论】:

首先感谢您的快速回复。所以我有一个名为 VulkanSDK 的文件夹,它是在执行 vulkansdk.runfile 时创建的。所以正如你所说,我跑了 export ra141@ra141:~/vulkan/gl_vk_chopper/build$ export VK_SDK_PATH=/home/ra141/vulkan/VulkanSDK ra141@ra141:~/vulkan/gl_vk_chopper/build$ cmake .. 但我仍然得到同样的错误。 我清理了构建文件夹并按照你说的做了,但仍然没有帮助,我按问题编辑以显示我做了什么。 我的错误:错误消息说 VK_SDK_PATH 必须指向特定的 Vulkan SDK 版本。 VulkanSDK 内应该有文件夹。让 VK_SDK_PATH 指向该文件夹,如果有帮助,请告诉我。

以上是关于在 vk_chopper 上使用 cmake 时出错的主要内容,如果未能解决你的问题,请参考以下文章

构建包时出现 Cmake 错误

使用 CMake 构建 fmt 时出现问题

从源代码安装 qiskit-aer 时出现 CMake 错误

使用 Cmake 文件在 Visual Studio 中构建 Qt 项目时出现链接错误

为avr构建代码时出现cmake构建问题

在宏内使用 Qt4 和 CMake 的 find_package 时出现问题