Qt 如何生成可执行程序,用mingw32-make生成的缺少dll文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 如何生成可执行程序,用mingw32-make生成的缺少dll文件相关的知识,希望对你有一定的参考价值。

Qt 写好程序,现在想生成可执行程序,怎么配置,怎么操作。我装的是Qt SDK,里面有Qt 4.7.4 for Desktop(MinGw) ,系统环境是XP。我该怎么操作,尽量说得详细些,本人新手,谢谢

直接编译就可以了,但由于编译默认是动态编译,如果要运行的话,在我的电脑->高级->环境设置->path里面添加x:\QtSDK\mingw\bin;x:\QtSDK\Desktop\Qt\4.8.0\mingw\bin(以上仅仅是我电脑的配置,你看懂就行)。
如果是要打包程序到别的电脑运行,因为是动态编译,所以编译出来的.exe文件并不完整,需要把它依赖的.dll文件也带上。
第一方法:如果你也装了VC++6.0的话,到开始->所有程序->Mocrosoft Visual C++ 6.0->Mocrosoft Visual C++ 6.0 Tools->Depends,用这个工具软件打开编译生成的.exe文件你能看到它具体依赖的.dll文件,在上面给出的两个路径里面找,打包是带上,如果你没找的,那一般就是Window共有的Dll文件,打包不用带上。
第二种方法:如果你没有安装VC++6.0的话,那你只能不设置path点击exe文件,看提示信息缺少什么dll文件,在上面给出路径中找到相应dll文件,打包时带上。
参考技术A 你运行程序就会提示缺少dll,你记下名字,然后到qt安装文件夹下查找,然后将找到的复制到你的exe程序所在的文件夹中。然后就可以了。如果复制进去之后出问题了,就换一个查找到的dll(一般情况下,会查找到好多个)。

Qt 如何编译成可执行程序,像VC的静态编译,可以在脱离QT的环境中运行

qt 开源版本 不允许静态编译
可以将DLL打包,就能再其他的机器上运行了.追问

debug版依赖的库太大了,140多M。
我还遇到了个问题,编译成debug版本功能都能运行得非常好,但是,编译成release版后,有些功能就不执行了,点击按钮硬是没有反应,难道说是被优化到无法执行了吗?

追答

依赖库没有打包全

追问

不会啊,要是依赖库没打包完,应该是报错或者崩掉,而不是程序没崩,但是不执行那些我希望执行的功能

参考技术A 你可以用系统自带的QT3.0 或者是4.0,qmake就可以生成了啊!把你的邮箱告诉我,给你点例子和入门的资料!很简单的。追问

嗯,太谢谢了哈,我的邮箱 254200341@qq.com

追答

已经给你发过去了啊!

参考技术B 交叉编译后构建啊 就生成了 如你建的时候名字叫Demo 那你的.exe就存在原来你新建的文件夹下面 AppDemo-build-desktop 这个里面有

以上是关于Qt 如何生成可执行程序,用mingw32-make生成的缺少dll文件的主要内容,如果未能解决你的问题,请参考以下文章

转:QT生成可执行的EXE程序

Windows上发布Qt的可执行程序

Linux QtCreator设置mingw编译器生成windows程序

如何使用交叉编译的构建调试 Qt dll 问题?

如何在 Windows 上使用 QT Creator 独立编译?

Qt编译生成的exe无法执行