perbright 2024-07-31 10:33 采纳率: 0%
浏览 12

qt6程序在direct11电脑上运行出现无法定位程序输入点D3D12SerializeVersionedRootSignature于动态库Qt6Gui.dll上,如何解决?

qt6.6+vs2019开发的qt程序,在direct11电脑上运行出现无法定位程序输入点D3D12SerializeVersionedRootSignature于动态库Qt6Gui.dll上,如何qt6不使用direct12相关api呢!

  • 写回答

1条回答 默认 最新

  • 来一杯龙舌兰 2024-07-31 10:43
    关注

    Qt 6 默认使用 Direct3D 12 (如果可用) 作为其 RHI (渲染硬件接口) 后端。然而,你的问题是因为你的程序试图在一个只支持 Direct3D 11 的系统上运行,而这个系统不支持 Direct3D 12 API,导致程序无法找到 D3D12SerializeVersionedRootSignature 这个函数。

    你可以通过设置环境变量来强制 Qt 6 使用 Direct3D 11。你可以在你的程序开始运行之前,设置 QT_RHI_BACKEND 环境变量为 "d3d11"。在 C++ 中,你可以这样做:

    qputenv("QT_RHI_BACKEND", "d3d11");
    

    你需要在创建 QApplication 或 QGuiApplication 对象之前设置这个环境变量。

    另外,你也可以在运行你的程序时,通过命令行参数来设置这个环境变量:

    QT_RHI_BACKEND=d3d11 ./your-program
    

    请注意,这只是一个临时的解决方案。如果你打算在只支持 Direct3D 11 的系统上分发你的程序,你应该考虑在编译时禁用 Direct3D 12 的支持,或者提供一个降级到 Direct3D 11 的选项。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月31日

悬赏问题

  • ¥15 设计一个线控耳机音响系统满足以下全部功能
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
  • ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
  • ¥50 rk3588板端推理
  • ¥250 opencv怎么去掉 数字0中间的斜杠。
  • ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
  • ¥250 paddleocr带斜线的0很容易识别成9
  • ¥15 电子档案元素采集(tiff及PDF扫描图片)
  • ¥15 flink-sql-connector-rabbitmq使用
  • ¥15 zynq7015,PCIE读写延时偏大