Имеется Mac OS X, на которую установлен MoltenVk с помощью команды
brew install vulkan-tools
Этот пакет по зависимостям подтягивает и molten-vk, и vulkan-headers. Команда vulkaninfo успешно отрабатывает и показывает всякую информацию о Vulkan.
Затем, имеется простой код создающий окно в SDL (для простоты примера опущен код цикла событий, освобождения ресурсов и т. д.):
#include <stdio.h>
#include <SDL3/SDL.h>
int main(int argc, char *argv[]) {
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}
SDL_Window *window = SDL_CreateWindow("My app", 800, 600, SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIGH_PIXEL_DENSITY | SDL_WINDOW_VULKAN);
if (!window) {
printf("Unable to create a window: %s", SDL_GetError());
return 1;
}
return 0;
}
Код собирается следующим скриптом CMake:
cmake_minimum_required(VERSION 3.28)
project(MyApp)
set(BUILD_SHARED_LIBS OFF)
find_package(Vulkan REQUIRED)
add_subdirectory(lib/volk)
add_subdirectory(lib/SDL)
add_executable(MyApp main.c)
target_link_libraries(MyApp SDL3::SDL3-static volk::volk)
В данном случае lib/SDL это клонированный master https://github.com/libsdl-org/SDL, а lib/volk это клонированный master https://github.com/zeux/volk.
При запуске код выдаёт ошибку:
Unable to create a window: Failed to load Vulkan Portability library
В чём может быть проблема?