Точка входа не найдена. vulkan api + glfw

После запуска программы появляется ошибка:

Точка входа в процедуру __cxa_atexit не найдена в библиотеке DLL
C:\Users\...\build\voxel.exe

Удалось выяснить, что ошибка возникает в строчке

vkDestroyInstance(instance, nullptr);

из voxel.h

voxel.cpp

#include "voxel.h"

int main() {
    HelloTriangleApplication app;

    try {
        app.run();
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

voxel.h

#pragma once

#define GLFW_DLL
#include <GLFW/glfw3.h>
//#define VK_USE_PLATFORM_WIN32_KHR
#include <vulkan/vulkan.h>

#include <iostream>
#include <stdexcept>
#include <cstdlib>

const uint32_t WIDTH = 800;
const uint32_t HEIGHT = 600;

class HelloTriangleApplication {
public:
    void run() {
        initWindow();
        initVulkan();
        mainLoop();
        cleanup();
    }

private:
    GLFWwindow* window;

    VkInstance instance;

    void initWindow() {
        glfwInit();

        glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
        glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);

        window = glfwCreateWindow(WIDTH, HEIGHT, "Vulkan", nullptr, nullptr);
    }

    void initVulkan() {
        //createInstance();
    }

    void mainLoop() {
        while (!glfwWindowShouldClose(window)) {
            glfwPollEvents();
        }
    }

    void cleanup() {
        std::cout << instance;
        vkDestroyInstance(instance, nullptr);

        glfwDestroyWindow(window);

        glfwTerminate();
    }
};

CMakeLists.txt

cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
project(voxel)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "-Wall -g3")

message($ENV{VULKAN_SDK})
set(Vulkan_LIBRARIES "/cygdrive/c/VulkanSDK/1.2.131.2/Lib")
set(Vulkan_INCLUDE_DIRS "/cygdrive/c/VulkanSDK/1.2.131.2/Include")
set(GLFW_LIBRARIES "/cygdrive/c/GLFW/lib-mingw-w64")
set(GLFW_INCLUDE_DIRS "/cygdrive/c/GLFW/include")


message(${Vulkan_LIBRARIES})
message(${Vulkan_INCLUDE_DIRS})

add_executable(voxel "voxel/voxel.cpp" "voxel/voxel.h")
target_include_directories(voxel PRIVATE ${Vulkan_INCLUDE_DIRS} ${GLFW_INCLUDE_DIRS})
target_link_libraries(voxel ${Vulkan_LIBRARIES}/vulkan-1.lib ${GLFW_LIBRARIES}/glfw3.dll)

Использую Cmake, make, gcc из комплекта cygwin. vulkanSDK с офф.сайта, glfw тоже.


Ответы (1 шт):

Автор решения: Matthew

Нужно скачать RunTime библиотеки vulkan.

→ Ссылка