Я пытаюсь скомпилировать первую примерную программу, включенную в vulkan, поэтому я вставлял ее в новый проект win32 в vs17 rc. Он называется 01-init_instance в директории Samples. Я компилирую x86.vulkan vkresult linker error msvc
#include <iostream>
#include <cstdlib>
#include <util_init.hpp>
#define APP_SHORT_NAME "vulkansamples_instance"
int main(int argc, char *argv[]) {
struct sample_info info = {};
init_global_layer_properties(info);
/* VULKAN_KEY_START */
// initialize the VkApplicationInfo structure
VkApplicationInfo app_info = {};
app_info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
app_info.pNext = NULL;
app_info.pApplicationName = APP_SHORT_NAME;
app_info.applicationVersion = 1;
app_info.pEngineName = APP_SHORT_NAME;
app_info.engineVersion = 1;
app_info.apiVersion = VK_API_VERSION_1_0;
// initialize the VkInstanceCreateInfo structure
VkInstanceCreateInfo inst_info = {};
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
inst_info.pNext = NULL;
inst_info.flags = 0;
inst_info.pApplicationInfo = &app_info;
inst_info.enabledExtensionCount = 0;
inst_info.ppEnabledExtensionNames = NULL;
inst_info.enabledLayerCount = 0;
inst_info.ppEnabledLayerNames = NULL;
VkInstance inst;
VkResult res;
res = vkCreateInstance(&inst_info, NULL, &inst);
if (res == VK_ERROR_INCOMPATIBLE_DRIVER) {
std::cout << "cannot find a compatible Vulkan ICD\n";
exit(-1);
}
else if (res) {
std::cout << "unknown error\n";
exit(-1);
}
vkDestroyInstance(inst, NULL);
/* VULKAN_KEY_END */
return 0;
}
Я сделал свойства проекта, как:
я это неправильно и получаю ошибки компоновщика для vkCreateInstance не разрешен (перед добавлением .lib в зависимости) теперь я получаю одну, другую, ошибку компоновщика, не обнаруживая vkResult. Это меня смущает, потому что я не знаю, как это может разрешить vkcreate, но не vkresult. Я использовал все настройки charset (многобайтные, а не unicode как обычно), но это ничего не меняло.
Ошибка:
Ошибка LNK2019 неразрешенный внешний символ "перечисление VkResult __cdecl init_global_layer_properties (структура sample_info &)" (init_global_layer_properties @@ Ю.А. AW4VkResult @@ AAUsample_info @@@ Z?) Ссылки в функции _MAIN vktest C: \ Users \ пользователь \ Documents \ Visual Studio 2017 \ Projects \ vktest \ vktest \ Source.obj 1
Что мне делать, чтобы устранить необходимость в этом? –
Удалите '#include' и использование чего-либо внутри него (например, 'init_global_layer_properties') из вашего кода. –
MuertoExcobito