【问题标题】:Testing Qt Application in VirtualBox在 VirtualBox 中测试 Qt 应用程序
【发布时间】:2016-03-11 10:44:09
【问题描述】:

我在 Qt 中编写了应用程序。它在安装在我的 PC 上的 Win 8.1 64 位中运行良好。但我也想在其他操作系统中测试它。所以我想在https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/ 中使用免费的虚拟机并在VirtualBox 上测试应用程序。

但是当我想在 Win7 32 位 VirtualBox 中运行我的应用程序时,我收到以下错误:

getProcAddress: Unable to resolve 'glGenFramebuffers'
getProcAddress: Unable to resolve 'glGenFramebuffersOES'
getProcAddress: Unable to resolve 'glGenFramebuffersARB'
getProcAddress: Unable to resolve 'glGenFramebuffersEXT'
getProcAddress: Unable to resolve 'glGenRenderbuffers'
getProcAddress: Unable to resolve 'glGenRenderbuffersOES'
getProcAddress: Unable to resolve 'glGenRenderbuffersARB'
getProcAddress: Unable to resolve 'glGenRenderbuffersEXT'
getProcAddress: Unable to resolve 'glBindRenderbuffer'
getProcAddress: Unable to resolve 'glBindRenderbufferOES'
getProcAddress: Unable to resolve 'glBindRenderbufferARB'
getProcAddress: Unable to resolve 'glBindRenderbufferEXT'
getProcAddress: Unable to resolve 'glRenderbufferStorage'
getProcAddress: Unable to resolve 'glRenderbufferStorageOES'
getProcAddress: Unable to resolve 'glRenderbufferStorageARB'
getProcAddress: Unable to resolve 'glRenderbufferStorageEXT'
getProcAddress: Unable to resolve 'glGenRenderbuffers'
getProcAddress: Unable to resolve 'glGenRenderbuffersOES'
getProcAddress: Unable to resolve 'glGenRenderbuffersARB'
getProcAddress: Unable to resolve 'glGenRenderbuffersEXT'
getProcAddress: Unable to resolve 'glBindRenderbuffer'
getProcAddress: Unable to resolve 'glBindRenderbufferOES'
getProcAddress: Unable to resolve 'glBindRenderbufferARB'
getProcAddress: Unable to resolve 'glBindRenderbufferEXT'
getProcAddress: Unable to resolve 'glRenderbufferStorage'
getProcAddress: Unable to resolve 'glRenderbufferStorageOES'
getProcAddress: Unable to resolve 'glRenderbufferStorageARB'
getProcAddress: Unable to resolve 'glRenderbufferStorageEXT'
getProcAddress: Unable to resolve 'glFramebufferRenderbuffer'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferOES'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferARB'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferEXT'
getProcAddress: Unable to resolve 'glFramebufferRenderbuffer'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferOES'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferARB'
getProcAddress: Unable to resolve 'glFramebufferRenderbufferEXT'
getProcAddress: Unable to resolve 'glGenBuffers'
getProcAddress: Unable to resolve 'glGenBuffersOES'
getProcAddress: Unable to resolve 'glGenBuffersARB'
getProcAddress: Unable to resolve 'glGenBuffersEXT'
getProcAddress: Unable to resolve 'glBindBuffer'
getProcAddress: Unable to resolve 'glBindBufferOES'
getProcAddress: Unable to resolve 'glBindBufferARB'
getProcAddress: Unable to resolve 'glBindBufferEXT'
getProcAddress: Unable to resolve 'glBufferData'
getProcAddress: Unable to resolve 'glBufferDataOES'
getProcAddress: Unable to resolve 'glBufferDataARB'
getProcAddress: Unable to resolve 'glBufferDataEXT'
getProcAddress: Unable to resolve 'glBindBuffer'
getProcAddress: Unable to resolve 'glBindBufferOES'
getProcAddress: Unable to resolve 'glBindBufferARB'
getProcAddress: Unable to resolve 'glBindBufferEXT'
getProcAddress: Unable to resolve 'glBindBuffer'
getProcAddress: Unable to resolve 'glBindBufferOES'
getProcAddress: Unable to resolve 'glBindBufferARB'
getProcAddress: Unable to resolve 'glBindBufferEXT'
getProcAddress: Unable to resolve 'glCreateProgram'
getProcAddress: Unable to resolve 'glCreateProgramARB'
getProcAddress: Unable to resolve 'glCreateProgramObject'
getProcAddress: Unable to resolve 'glCreateProgramObjectARB'
QOpenGLShaderProgram: could not create shader program 
getProcAddress: Unable to resolve 'glCreateShader'
getProcAddress: Unable to resolve 'glCreateShaderARB'
getProcAddress: Unable to resolve 'glCreateShaderObject'
getProcAddress: Unable to resolve 'glCreateShaderObjectARB'
QOpenGLShader: could not create shader 
Renderer failed shader compilation: 

我知道这是 OpenGL 的问题。

是否可以以某种方式将 OpenGL 从我的 PC 转发到 VirtualBox。因为在我的 PC 上我对 OpenGL 没有任何问题。

或者,在 VirtualBox 中测试 Qt 应用程序是不是很疯狂?

【问题讨论】:

  • 你使用openGL吗?看起来它试图找到一些 OpenGL 依赖项并发现它们不存在。
  • @JohnKeates 是的,Qt 使用 OpenGL。而且VirtualBox似乎没有提供这样的图形功能。
  • 您采取了哪些步骤来部署应用程序?
  • @MrEricSir 我使用了wiki.qt.io/Deploy_an_Application_on_Windows。但是我只能通过使用 Creator 安装完整的 Qt 并运行 Qt 应用程序项目来获得错误。没有安装 Qt,应用程序没有启动,没有任何错误。
  • 这可能会有所帮助:stackoverflow.com/a/56857915/2672125

标签: qt opengl virtual-machine virtualbox


【解决方案1】:
  1. 安装 VirtualBox Guest Additions
  2. 选中启用 3D 加速

【讨论】:

  • 这也是我的建议 ;-) OpenGL 通常应该与纯软件渲染一起工作,所以错误很奇怪,但启用图形加速也会启用 OpenGL 硬件渲染。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2013-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多