Я пытаюсь правильно связать Vulkan в CMake, и я получаю сообщение об ошибке при попытке обновить / собрать.Вот мой CMakeList.txt
:
cmake_minimum_required(VERSION 3.12)
project(game)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES game.cpp window.cpp window.hpp type_definitions.hpp windows_definitions.hpp)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
find_package(Vulkan REQUIRED)
include_directories(${Vulkan_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${Vulkan_LIBRARY})
Однако я получаю следующую ошибку:
C: \ Users \ username.CLion2018.2 \ system \ cygwin_cmake \ bin \cmake.exe -DCMAKE_BUILD_TYPE = Debug -G "CodeBlocks - Makefiles Unix" / cygdrive / c / Пользователи / имя пользователя / Проекты / Программирование / игра - Не удалось найти Vulkan (отсутствует: Vulkan_LIBRARY) Ошибка CMake: в этом используются следующие переменныепроект, но они установлены в NOTFOUND.Пожалуйста, установите их или убедитесь, что они установлены и проверены правильно в файлах CMake: Vulkan_LIBRARY (ADVANCED), связанный с целевой «игрой» в каталоге / cygdrive / c / Users / username / Projects / Programming / game
Итак, я попытался сделать это вручную:
cmake_minimum_required(VERSION 3.12)
project(game)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES game.cpp window.cpp window.hpp type_definitions.hpp windows_definitions.hpp)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
find_path(Vulkan_INCLUDE_DIR NAMES vulkan/vulkan.h PATHS "$ENV{VULKAN_SDK}/Include")
find_library(Vulkan_LIBRARY NAMES "vulkan-1" PATHS "$ENV{VULKAN_SDK}/Lib" NO_DEFAULT_PATH)
include_directories(${Vulkan_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${Vulkan_LIBRARY})
И все равно получаю еще одну ошибку ...
C: \ Users \ username.CLion2018.2 \ system\ cygwin_cmake \ bin \ cmake.exe -DCMAKE_BUILD_TYPE = Debug -G "CodeBlocks - Makefiles Unix" / cygdrive / c / Пользователи / имя пользователя / Проекты / Программирование / игра Ошибка CMake: в этом проекте используются следующие переменные, но они установленыНЕ НАЙДЕН.Пожалуйста, установите их или убедитесь, что они установлены и проверены правильно в файлах CMake: Vulkan_LIBRARY связан целевой «игрой» в каталоге / cygdrive / c / Users / имя пользователя / Projects / Programming / game
Сейчасэто сбивает меня с толку, потому что я установил Vulkan SDK и моя переменная пути VULKAN_SDK
установлена правильно.Похоже, что он правильно собирает каталог include, и происходит сбой только при попытке получить библиотеку.Я также проверил в своем проводнике, что файл vulkan-1.lib
существует и находится в пути, который ищется по $ENV{VULKAN_SDK}/Lib
.Что возможно могло пойти не так?Это как-то связано с cygwin или моей версией cmake?Я использую c ++ (GCC) 7.3.0 из cygwin x64 и cmake 3.12.3 в комплекте с CLion.
РЕДАКТИРОВАТЬ: Это работает, но я не хочу, чтобы это было постоянное решение:
cmake_minimum_required(VERSION 3.12)
project(game)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES game.cpp window.cpp window.hpp type_definitions.hpp windows_definitions.hpp)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
include_directories("$ENV{VULKAN_SDK}/Include")
target_link_libraries(${PROJECT_NAME} "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib")