使用Qt显示JPG图像不适用于版本可执行文件

时间:2012-10-09 12:45:10

标签: c++ qt release executable jpeg

我用qt显示jpg图像有一个恼人的问题。我在Windows 7中使用Visual Studio 2008并使用Qt版本4.8.2。我现在将通过" collidingmice"来描述我的问题。示例使用Qt(../ examples / graphicsview / collidingmice)传递。

我可以通过Visual Studio IDE或通过Visual Studio命令提示符构建此示例。在此示例中,jpg用作背景,并在执行调试可执行文件时正确显示。但是在发布版本中,这个背景jpg没有显示出来。

我已经意识到,Qt使用插件来加载/显示不同的图像。因此,我将Qt的插件文件夹的内容复制到应用程序目录(其中是collidingmice.exe)。不幸的是,这并没有解决问题。

因此,我认为Qt构建和jpeg库肯定存在问题。因此,我通过在Visual Studio命令提示符中执行以下命令来重新配置Qt:

nmake distclean
configure -debug-and-release -opensource -platform win32-msvc2008 -qt-libjpeg -no-webkit
nmake

之后重建了示例,但是再次没有显示jpg图像。我不确定问题是什么,因为它在调试版本和发布版本中工作我认为我只需要提供所需的插件DLL。但显然我不对。

我希望任何人都可以帮助我,或者可以给我一些提示可能存在的问题。谢谢!

1 个答案:

答案 0 :(得分:7)

  

因此我将Qt的插件文件夹的内容复制到了   应用程序目录(其中是collidingmice.exe)。

您需要将插件放入“imageformats”子目录,例如像

bin
 ├── collidingmice.exe
 └── imageformats
       ├── qjpeg4.dll
       ├ ...

另见http://www.qtcentre.org/threads/46927-Location-of-imageformats-directory


事实证明OP已经相应地设置了目录结构。根本原因是加载了错误的QtGui4.dll。可以通过将DLL直接复制到应用程序目录中或通过更改PATH环境变量中的路径顺序来修复“,以便将Qt bin目录放在包含QtGui4.dll的所有其他路径的前面。 “

无论如何,Process Monitor是追踪此类问题的好工具。