Точка входа не найдена. 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 тоже.