Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用Qt显示JPG图像不适用于发布可执行文件_C++_Qt_Release_Executable_Jpeg - Fatal编程技术网

C++ 使用Qt显示JPG图像不适用于发布可执行文件

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

我有一个恼人的问题,用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:

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工具: