C++ 使用Qt显示JPG图像不适用于发布可执行文件
我有一个恼人的问题,用qt显示jpg图像。我在Windows7中使用VisualStudio2008开发,并使用Qt版本4.8.2。现在,我将用Qt../examples/graphicsview/collingmices来描述我的问题 我可以通过VisualStudioIDE或通过VisualStudio命令提示符构建此示例。在本例中,jpg用作背景,并在执行调试可执行文件时正确显示。但在发布版本中,没有显示这个背景jpg 我已经意识到,Qt使用插件加载/显示不同的图像。因此,我将Qt的plugin文件夹的内容复制到collidingmies.exe所在的应用程序目录中。不幸的是,这并不能解决问题 因此,我认为Qt构建和jpeg库一定有问题。因此,我通过在Visual Studio命令提示符中执行以下命令重新配置了Qt:C++ 使用Qt显示JPG图像不适用于发布可执行文件,c++,qt,release,executable,jpeg,C++,Qt,Release,Executable,Jpeg,我有一个恼人的问题,用qt显示jpg图像。我在Windows7中使用VisualStudio2008开发,并使用Qt版本4.8.2。现在,我将用Qt../examples/graphicsview/collingmices来描述我的问题 我可以通过VisualStudioIDE或通过VisualStudio命令提示符构建此示例。在本例中,jpg用作背景,并在执行调试可执行文件时正确显示。但在发布版本中,没有显示这个背景jpg 我已经意识到,Qt使用插件加载/显示不同的图像。因此,我将Qt的plu
nmake distclean
configure -debug-and-release -opensource -platform win32-msvc2008 -qt-libjpeg -no-webkit
nmake
在这之后,重新构建了示例,但同样没有显示jpg图像。我不确定问题出在哪里,因为它在调试版本和发布版本中都可以工作,我想我只需要提供所需的插件DLL。但很明显我是不对的
我希望任何人都能帮助我,或者能给我一些可能存在问题的提示。谢谢
因此,我将Qt插件文件夹的内容复制到
CollidingMices.exe所在的应用程序目录
您需要将插件放入imageformats子目录,例如
bin
├── collidingmice.exe
└── imageformats
├── qjpeg4.dll
├ ...
另见
结果是OP已经相应地设置了目录结构。根本原因是加载了错误的QtGui4.dll。可以通过将DLL直接复制到应用程序目录或更改PATH环境变量中路径的顺序来修复此问题,以便将Qt bin目录放置在包含QtGui4.DLL的所有其他路径之前
无论如何,是追踪此类问题的好工具。谢谢,但我已经这样做了,但它不起作用。@Owen太伤心了-这正是我不久前遇到的问题。。。然后,我建议您使用process monitor或DependencyWalker应用程序查看系统尝试加载哪些DLL。请确保:对于您的发布版本,您已将发布DLL复制到imageformats目录中,对吗?表示,例如qjpeg4.dll,而不是qjpegd4.dll。是的,正确。但是,感谢您与process monitor的链接-很好的工具。我确定该工具在QtGui4.dll方面存在一些问题。我怀疑将加载错误的QtGui4.dll。我正在测试这个。修正了!从MikTeX加载了错误的QtGui4.dll。可以通过将DLL直接复制到应用程序目录或更改PATH环境变量中路径的顺序来修复此问题,以便将Qt bin目录放置在包含QtGui4.DLL的所有其他路径之前-感谢Process Monitor工具: