我正在尝试设置一个裸骨程序来使用Vulkan.我安装了LunarG SDK.我有一个基本上只是打电话的小程序vkCreateInstance.我用这行编译:
g++ -std=c++11 -I/c/VulkanSDK/1.0.3.1/Include -L/c/VulkanSDK/1.0.3.1/Bin main.cpp -lvulkan-1
Run Code Online (Sandbox Code Playgroud)
我使用64位mingw(MSYS2)得到此编译器错误:
relocation truncated to fit||R_X86_64_32 against symbol `__imp_vkCreateInstance' defined in .idata$5 section in C:\VulkanSDK\1.0.3.1\Bin/vulkan-1.lib(vulkan-1.dll.b)|
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我是否链接到正确的图书馆?
我能够通过调用vkCreateInstancewith 来编译一个简单的程序MinGW-64。
也许您得到的错误与该-m64标志有关。
按照下面的配置:
使用g ++:
编译:
g++ -m64 -std=c++11 -c -g -I/C/VulkanSDK/1.0.3.1/Include -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.c
Run Code Online (Sandbox Code Playgroud)
链接:
g++ -m64 -std=c++11 -o dist/Debug/MinGW-Windows/vulkanfirsttest build/Debug/MinGW-Windows/main.o -L/C/VulkanSDK/1.0.3.1/Bin -lvulkan-1
Run Code Online (Sandbox Code Playgroud)
使用gcc:
编译:
gcc -m64 -c -g -I/C/VulkanSDK/1.0.3.1/Include -std=c11 -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.c
Run Code Online (Sandbox Code Playgroud)
链接:
gcc -m64 -o dist/Debug/MinGW-Windows/vulkanfirsttest build/Debug/MinGW-Windows/main.o -L/C/VulkanSDK/1.0.3.1/Bin -lvulkan-1
Run Code Online (Sandbox Code Playgroud)
源代码:
#include <stdio.h>
#include <stdlib.h>
#include <vulkan/vulkan.h>
int main(int argc, char *argv[]) {
VkInstanceCreateInfo vk_info;
VkInstance inst = 0;
VkResult res;
vk_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
vk_info.pNext = NULL;
vk_info.pApplicationInfo = NULL;
vk_info.enabledLayerCount = 0;
vk_info.ppEnabledLayerNames = NULL;
vk_info.enabledExtensionCount = 0;
vk_info.ppEnabledExtensionNames = NULL;
res = vkCreateInstance(&vk_info, NULL, &inst);
if (res != VK_SUCCESS) {
// Error!
printf("Error %d\n", res);
return 1;
};
printf("Device created: %p\n", inst);
vkDestroyInstance(inst, NULL);
return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Device created: 0000000000534FD0
| 归档时间: |
|
| 查看次数: |
5656 次 |
| 最近记录: |