qt发布的时候图片出不来并且debug版本不能发布,该怎么处理
qt发布的时候图片出不来并且debug版本不能发布
最近想发布一个qt很简单的程序。遇到两个问题:
1.我用的是vs2008+qt4.7.4.但是发布出去以后都提示“应用程序配置不正确,请重新安装”之类的。之前在vs2005下也遇到过。在vs的两个目录下把库什么和manifest的加进去。然后打包。结果还是不行。估计是我的vs2008打过补丁。看了一下manifest。版本是version="9.0.30729.1。在网上找了一个方法。在pro中加了一个宏。好像也不行。最后在目标机上装了个vcredist。总算可以运行release版本了。但debug还是不行……“应用程序配置不正确,请重新安装”。
2.我想把图片统一到一个库里去。就做了一个Icon的库。把文件都弄到它的资源文件里。其他的库用这个库的文件。
这个库共3个文件:第一个:LibIcon.h 这个文件的作用就是export。
第二个文件Icon.h
.cpp
然后我在main.cpp中吊用InitIcon函数。
我先试着在自己的电脑上发布了一下。图片出来了。然后喜滋滋地弄到别人的电脑上安装。安装完后发现图片都没有出来。头大了。
求问大佬们,到底是怎么回事啊?
------解决方案--------------------
明显是少掉某些文件或者运行环境的配置有误
------解决方案--------------------
少了插件库。你可以把图片改成.png格式的,要不就要去QT里面把那些jpg这些的库复制到你的工程中来,还要放到指定的目录。在运行目录下创建这个目录imageformats, 将图片库全放进去就好了。不过建议你还是把图片格式换成png的。
------解决方案--------------------
debug版本本来就不是发布版本,只是调试版本。专门用来调试用的。如果你要发布debug版本,你必须把debug版本的库也加上去,就是Qt库里面那些 带 d.dll的那些。不建议这么做,debug编译出来的代码很大。编译器会帮你加了许多东西在里面,比如一些没赋值的变量,他会自动帮你赋值。等等。。
------解决方案--------------------
添加一个库就能搞定了吧 在编译器的目录下 具体忘了
------解决方案--------------------
最好发布成release版本。图片不显示是因为缺少图片的插件,拷贝Qt目录下的 plugins/imageformats目录下响应的dll。与可执行程序同一级目录才行。
------解决方案--------------------
所有的多必须要加,不过我也没发行过debug版本。基本上应该没人会去发行debug版本,所以lz也不要纠结这个问题。debug只是给你用来调试的。
最近想发布一个qt很简单的程序。遇到两个问题:
1.我用的是vs2008+qt4.7.4.但是发布出去以后都提示“应用程序配置不正确,请重新安装”之类的。之前在vs2005下也遇到过。在vs的两个目录下把库什么和manifest的加进去。然后打包。结果还是不行。估计是我的vs2008打过补丁。看了一下manifest。版本是version="9.0.30729.1。在网上找了一个方法。在pro中加了一个宏。好像也不行。最后在目标机上装了个vcredist。总算可以运行release版本了。但debug还是不行……“应用程序配置不正确,请重新安装”。
2.我想把图片统一到一个库里去。就做了一个Icon的库。把文件都弄到它的资源文件里。其他的库用这个库的文件。
这个库共3个文件:第一个:LibIcon.h 这个文件的作用就是export。
- C/C++ code
#pragma once #ifdef LIBICON_EXPORTS #define ICON_API __declspec(dllexport) #else #define ICON_API __declspec(dllimport) #endif #ifndef WIN32 #undef ICON_API #define ICON_API #endif #ifdef WIN32 #pragma warning(disable : 4251) #endif
第二个文件Icon.h
- C/C++ code
#pragma once #include "LibIcon.h" #include <QIcon> class ICON_API CIcon : public QIcon { public: CIcon( QString strpath ); static void InitIcon(); };
.cpp
- C/C++ code
#include "CIcon.h" CIcon::CIcon( QString strpath ):QIcon(strpath) { } void CIcon::InitIcon() { Q_INIT_RESOURCE(Icon); }
然后我在main.cpp中吊用InitIcon函数。
我先试着在自己的电脑上发布了一下。图片出来了。然后喜滋滋地弄到别人的电脑上安装。安装完后发现图片都没有出来。头大了。
求问大佬们,到底是怎么回事啊?
------解决方案--------------------
明显是少掉某些文件或者运行环境的配置有误
------解决方案--------------------
少了插件库。你可以把图片改成.png格式的,要不就要去QT里面把那些jpg这些的库复制到你的工程中来,还要放到指定的目录。在运行目录下创建这个目录imageformats, 将图片库全放进去就好了。不过建议你还是把图片格式换成png的。
------解决方案--------------------
debug版本本来就不是发布版本,只是调试版本。专门用来调试用的。如果你要发布debug版本,你必须把debug版本的库也加上去,就是Qt库里面那些 带 d.dll的那些。不建议这么做,debug编译出来的代码很大。编译器会帮你加了许多东西在里面,比如一些没赋值的变量,他会自动帮你赋值。等等。。
------解决方案--------------------
添加一个库就能搞定了吧 在编译器的目录下 具体忘了
------解决方案--------------------
最好发布成release版本。图片不显示是因为缺少图片的插件,拷贝Qt目录下的 plugins/imageformats目录下响应的dll。与可执行程序同一级目录才行。
------解决方案--------------------
所有的多必须要加,不过我也没发行过debug版本。基本上应该没人会去发行debug版本,所以lz也不要纠结这个问题。debug只是给你用来调试的。