如何将 Vulkan 与 MinGW 结合使用? (R_X86_64_32 错误)

2023-12-23

我正在尝试设置一个简单的程序来使用 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

我使用 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)|

我该怎么办?我是否链接到了正确的库?


我能够编译一个简单的程序,只需调用vkCreateInstance with MinGW-64.

也许您收到的错误与-m64 flag.

按照我的配置如下:

  • 视窗8.1
  • NetBeans IDE 8.1
  • Vulkan SDK 1.0.3.1
  • gcc 版本 5.3.0(x86_64-posix-seh-rev0,由 MinGW-W64 项目构建)

使用 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

Link:

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

与海湾合作委员会:

编译:

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

Link:

gcc -m64 -o dist/Debug/MinGW-Windows/vulkanfirsttest build/Debug/MinGW-Windows/main.o -L/C/VulkanSDK/1.0.3.1/Bin -lvulkan-1

源代码:

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

Output:

Device created: 0000000000534FD0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Vulkan 与 MinGW 结合使用? (R_X86_64_32 错误) 的相关文章

随机推荐

  • 使用最新更新构建发布 apk 时出错

    我最近将我的机器上的 Android Studio 更新到版本 Android Studio 3 1 Build AI 173 4670197 built on March 22 2018 JRE 1 8 0 152 release 102
  • 从 netty ByteBuf 获取字符串

    如何从netty中获取字符串ByteBuf 到目前为止 我能够逐个字符地获取它 有没有办法直接获取字符串对象 message is of type ByteBuf for int i 0 i lt message capacity i by
  • 成为网络安全专家的步骤

    我一直在编码C Matlab 以及用于科学目的的类似语言已经有一段时间了 但我最近想进入网络编程 我已经自学了HTML and CSS我已经涉足Javascript PHP and mySQL 我真的很想开始制作更先进的 用户驱动的网站 如
  • Angular 4+ ngOnDestroy() 投入使用 - 销毁 observable

    在有角度的应用程序中 我们有ngOnDestroy 组件 指令的生命周期钩子 我们使用此钩子取消订阅可观察量 我想清除 销毁在 injectable 服务 我看到一些帖子是这么说的ngOnDestroy 也可以在服务中使用 但是 这是一个好
  • 时间复杂度有何不同?

    如果先存储然后使用该值是否会节省时间 例如 while i
  • Windows Azure 基本身份验证

    我需要在 Windows Azure 上设置一个测试网站 通常为了防止随机的人查看它 我会使用某种简单的密码设置基本身份验证来过滤人员 Windows Azure 似乎没有这个选项 有哪些替代方案 到目前为止 我正在考虑实施另一级别的表单身
  • 如何将所有图像从 ACR 存储库导入到不同租户中的另一个 ACR

    设想 我在 ACR azure 容器注册表 中有 4 个存储库 每个存储库中有多个图像 我想将所有存储库和其中的所有图像移动到不同的 ACR azure 容器注册表 我做了什么 我已使用以下命令将 ACR azure 容器注册表 存储库中的
  • 如何在 Django 中配置注销后重定向到哪里?

    只是想知道我可以在哪里设置注销后重定向到的网址 我知道你可以设置登录网址 我想重定向到我的主页 现代 Django 2017 有一个名为LOGOUT REDIRECT URL 老姜戈 原始答案 您不需要覆盖或包装任何内容 根据文档 您只需提
  • 状态机图如何表示为 UML 中操作的行为?

    行为 方法体 可以是状态机或活动 活动很容易理解 因为它们相当于过程代码 我不明白如何将状态机用作操作的行为 您能提供一个简单的例子吗 笔记 操作是一个仅规范的元素 将其想象为 OO 编程语言中的方法签名 它有一个名称和一个参数列表 行为
  • 为什么使用 constexpr 初始化变量是在运行时而不是编译时评估

    据我了解 关键字constexpr告诉编译器表达式的求值可以在编译时发生 具体来说 constexpron 变量意味着可以在编译时计算变量的值 而constexpr在函数上意味着可以在编译时调用该函数并计算其返回值 如果该函数在运行时被调用
  • Excel 根据单元格值定义范围

    是否可以根据单元格中给定的值定义范围 因此 例如 我的选择是 A1 A5 即五个单元格 是否可以让 Excel 通过将单元格值 如 B1 设置为 5 来确定这一点 其目的是通过单元格值的一次更改轻松更改许多范围 因此 如果我将单元格值 B1
  • 如何在intellij Idea中打开临时/预览选项卡

    我喜欢 VS Code 和 sublime 编辑器 特别是它们预览文件的默认行为 当您从文件资源管理器平移中单击文件时 它将在临时选项卡中打开它 除非在文件中进行了更改或双击文件打开它 这会在持久选项卡上打开它 最近我必须在一个项目中使用
  • 仅在 numpy 中打印实数根

    我有这样的事情 coefs 28 36 50 22 print numpy roots coefs 当然结果是 0 35770550 1 11792657j 0 35770550 1 11792657j 0 57030329 0 j 但是
  • matplotlib.pyplot 没有属性“style”

    我正在尝试按照教程在 matplotlib 中设置样式http matplotlib org users style sheets html http matplotlib org users style sheets html impor
  • 使用 AZ CLI 创建 Azure 应用程序注册时出现问题

    我正在尝试使用可以访问 Windows Azure AD 的更新清单创建 Azure AD 应用程序 我已经能够成功创建 配置新的应用程序注册 但在尝试配置清单时遇到问题 我尝试使用我的 MS 提供的示例代码 https learn mic
  • 如何将服务器加入 Active Directory(域)?

    需要在此服务器上启动一个新的 ASP NET 站点 但需要加入我们的 Active Directory 域 有人知道这是如何完成的吗 您的域的管理员通常会这样做 如果他不知道如何做 他会咨询Microsoft 知识库文章 http supp
  • 如何使来自 Rails 3 引擎的路由可供主机应用程序使用?

    我有一个 Rails 3 应用程序 其中有多个包含附加功能的引擎 每个引擎都是一项单独的服务 客户可以购买访问权限 然而 我遇到了来自引擎的路由问题 这些路由对于控制器和视图来说并不容易使用 控制器 class ClassroomsCont
  • 如何确定 MSVC 用于预处理器宏的值

    我试图在 MSVC6 上使用 D 编译器选项来定义字符串 但在它周围使用双引号会有些奇怪 为了调试这个问题 如果我能够看到预处理器实际上在宏扩展的代码中替换了什么值 这对我来说非常有帮助 我有什么办法可以做到这一点吗 我尝试使用 程序集和源
  • 如何在 Angular JS 表达式中使用异或功能? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 html 是
  • 如何将 Vulkan 与 MinGW 结合使用? (R_X86_64_32 错误)

    我正在尝试设置一个简单的程序来使用 Vulkan 我安装了 LunarG SDK 我有一个小程序 基本上只是调用vkCreateInstance 我用这一行编译 g std c 11 I c VulkanSDK 1 0 3 1 Includ