如何将 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 错误) 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum

随机推荐

  • 使用最新更新构建发布 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