2017-02-16 1 views
1

나는 vulkan에 포함 된 첫 번째 샘플 프로그램을 컴파일하려고하는데, 그래서 그것을 vs17 rc의 새로운 win32 프로젝트에 붙여 넣습니다. 샘플 디렉토리에서 01-init_instance라고합니다. 나는 x86을 컴파일 중이다. 의 종속 lib 디렉토리를 추가하기 전에 내가 vkCreateInstance이 잘못하고 얻고 있었다 링커 오류가 해결되지 않는 한vulkan vkresult 링커 오류 msvc

enter image description here enter image description here enter image description here

(:

#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; 
} 

내가 좋아하는 프로젝트 속성을했을) 이제 vkResult를 찾지 못해 하나의 다른 링커 오류가 발생합니다. 이것은 내가 어떻게 vkcreate를 해결할 수 있는지 모르지만 vkresult가 아니라는 것을 알기 때문에 혼란 스럽다. 모든 charset 설정 (멀티 바이트, 유니 코드가 아닌)을 사용했지만 아무 것도 변경하지 않았습니다.

오류 :

오류 LNK2019 확인되지 않은 외부 기호 기능 _main에서 참조 "열거 VkResult __cdecl init_global_layer_properties (& sample_info 구조체)"(init_global_layer_properties @@ YA AW4VkResult @@ AAUsample_info @@@ Z?) vktest C : 사용자 \ 문서는 \ vktest \ vktest \ Source.obj 프로젝트 \ 비주얼 스튜디오 2017 \ \ \ 사용자 1

답변

2

다음은 정적 라이브러리로 utils 폴더를 컴파일 VULKAN SDK와 함께 샘플 및 링크 그 도서관. 이것은 init_global_layer_properties 기능이있는 곳입니다. 샘플을 해당 라이브러리와 연결하지 않으면 확인되지 않은 기호가 표시됩니다.

+0

필요성을 제거하려면 어떻게해야합니까? –

+0

'#include '와 그 안의 어떤 것 (예 :'init_global_layer_properties')을 코드에서 제거하십시오. – MuertoExcobito