最近需要发布QT开发的程序,在网上查了一些咨询,整理到这里,备用。
三个方法:静态编译、复制DLL、路径设置(已有DLL)
最佳解觉方案 复制DLL,官方都推荐这样
①复制DLL
步骤1:make release,编译出release版本
步骤2:用depends(※1)看一下缺少哪个库
需要的工具Dependency Walker(主页:http://dependencywalker.com/),
可以用来查看可执行文件依赖的dll动态链接库。
步骤3:依次查看各个DLL的位置,拷贝到可执行文件的目录。
之后即可在没有安装Qt的Windows机器上运行。
在最简单的情况下,依赖的DLL都在类似D:/qt/2010.01/qt/bin目录中,分别是 mingwm10.dll,QtCore4.dll,QtGui4.dll 和 libgcc_s_dw2-1.dll。
注意:如果使用Debug版的可执行文件,会出现“没有找到QtCored4.dll”的错误。是由于Debug版依赖的是 QtCored4.dll,QtGuid4.dll 和 libgcc_s_dw2-1.dll的缘故。QtCored4.dll约28.89MB,而QtGuid4.dll约140.5MB。
另外,转网络上的一段:
程序中默认只支持png图片,如果使用了gif,jpg等格式的文件是显示不出来的。需要将Qt安装目录下的qt/plugins/目录中的 imageformats文件夹拷贝到exe文件目录下(注意是整个文件夹)。而 imageformats 文件夹中只需要保留你需要的文件,例如你只需要支持gif文件,就只保留qgif4.dll即可。
②静态编译(elva:还没有实践,仅作备份)
静态编译,生成的文件就只有一个exe
所以我们可以采用静态编译,静态编译后的Qt就不需要再拷贝这3个dll文件了,首先需要修改位于\mkspecs \win32-g++下的qmake.conf,在QMAKE_LFLAGS标签中增加-static。然后在“开始”菜单中运行Qt 4.4.3 Command Prompt程序,会启动一个命令行界面。再里面打入configure -static -release -no-exceptions。接受里面提到的许可之后,就会开始编译生成qmake并进行配置。配置完成以后,再输入mingw32-make sub-src。这样就开始对Qt进行编译,这步需要很长时间。然后再像以前这样重新编译和生成自己写的程序,这样的生成的可执行程序就是使用静态链接的,可以直接在未安装Qt的电脑上运行。
没有评论:
发表评论