qt 生成的exe必须dll文件的问题

作者&投稿:纪肾 (若有异议请与网页底部的电邮联系)
Qt静态编译(release)出的exe文件打不开。不缺少任何dll文件,没有提示任何错误。在q~

请问知道为什么了吗

使用QT生成exe应用程序后,其中依赖很多QT中的DLL库,但是在生成exe的时候,这些DLL 并没有添加到exe目录,在很多时候,我们都自己手动去复制需要的DLL,难免不会造成少dll的情况或者在其他的电脑上用不起。今天发现在qt安装目录中发现Qt 官方开发环境里自带了一个工具:windeployqt.exe。可以自动把需要依赖的库文件都自动拷贝到exe目录中。

使用方法:

1.打开QT的命令行工具,



2:进入到你生成exe目录,你可以把生成的exe拷贝到新建的一个目录中,比如c:ext中。

使用命令:1. cd c:ext

2. windeployqt test.exe

然后你就可以看到你的目录中就有需要的dll和文件了,这时候你可以试试能否启动。

1.使用组件编译:直接引入qt源文件,而不是用预编译的版本,控制所需组件的大小
2.使用静态编译,一般而言静态库要比动态库小一些。
3.我检查了qtGui4.dll 9.67M 哪有100多M啊……加上QtCore4.dll 2.5M ,一般用这两个最多,也就12M多点而已。你是不是用的debug版本的库啊,那个光是GUI就172M……
4.qt是可以用在嵌入式系统中的,所以他提供了组件裁剪的功能,你也可以去找一下资料,或者自己手动编译Qt库。

是要这样的,没办法,缺少了这些库程序就没办法运行。
我们现在用的软件你打开安装目录看看,有很多这种dll文件的

bcvbvcbvcbvcbvcbvcbvc


南漳县17386482900: qt 生成的exe必须dll文件的问题 -
尧喻荆肤: 是要这样的,没办法,缺少了这些库程序就没办法运行.我们现在用的软件你打开安装目录看看,有很多这种dll文件的

南漳县17386482900: 如何解决QT程序发布时的dll依赖问题 -
尧喻荆肤: 使用QT生成exe应用程序后,其中依赖很多QT中的DLL库,但是在生成exe的时候,这些DLL 并没有添加到exe目录,在很多时候,我们都自己手动去复制需要的DLL,难免不会造成少dll的情况或者在其他的电脑上用不起.今天发现在qt安装目录...

南漳县17386482900: 没装QT的电脑运行QT产生的Exe文件 -
尧喻荆肤: 把Qt安装目录下 qt/bin下所有的dll文件拷贝出来应该就可以了,或者使用静态编译直接把库编译进去.别跟我说动静态库的问题还不知道,不知道的话请自己查阅相关资料

南漳县17386482900: QT发布版本的EXE文件运行时需要qtguid.dll -
尧喻荆肤: 需要用到的dll. QTCORE4.DLL QTGUI4.LL QTNETWORK4.DLL和CODECS目录下的文件

南漳县17386482900: qt5.8 mingw 打包的exe要怎么在xp上运行 -
尧喻荆肤: 直接编译就可以了,但由于编译默认是动态编译,如果要运行的话,在我的电脑->高级->环境设置->path里面添加x:\QtSDK\mingw\bin;x:\QtSDK\Desktop\Qt\4.8.0\mingw\bin(以上仅仅是我电脑的配置,你看懂就行). 如果是要打包程序到别的...

南漳县17386482900: Qt文件使用 -
尧喻荆肤: 对的,.a是静态链接库,相当于windows上的lib文件..so是动态连接库,相当于windows上的dll文件.用法:1. 把libstudent.a拷贝到/usr/lib或者/lib目录下2. 比如你的项目是test.c,可以这么编译:gcc -o test test.c libstudent.a 或者gcc -o test test.c -lstuent.so库的用法一样.补充:早说你在windows平台嘛..是用cygwin吗?把libstudent.a复制到/usr/lib或者/lib目录下,把dll复制到exe所在的目录..a文件是编译exe需要的,.dll文件是exe运行时需要的.

南漳县17386482900: 如何快速高效地打包Qt程序需要的DLL -
尧喻荆肤: 开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.

南漳县17386482900: Qt生成的exe文件拷贝到别人的电脑上不能运行,根据提示又加了相应的.dll -
尧喻荆肤: 建议你用360系统急救箱急救一下,急救后用它恢复一下系统文件和DLL文件,重启电脑看看能否正常,注意用急救箱必须在联网的状态下运行.

南漳县17386482900: cpp文件是怎么变成可执行文件的?动态链接库又是什么呢? -
尧喻荆肤: 1.cpp是编译产生2进制代码,这个2进制代码就是exe2.qt库就是一大堆已经写好的函数,跟你引用就能输入输出一样,引用了QT就能写图形.3.makefile是用来帮助计算机编译C源文件的.在linux里面比较常用,告诉了计算机,要编译我的C源文件,需要什么版本的编译器,需要什么包,什么头文件,如果不满足就提示,如果满足就编译,还记录了C源文件的位置(因为不止一个),编译之后放到哪.等等.4.静态链接库是lib,在编译的时候,将里面的代码直接写入exe中,随身带.dll因为里面东西比较通用,一般电脑都有,所以在用的时候从系统里面拿就行.于是就不写这部分了,只标记在哪个dll里面.

南漳县17386482900: qt5生成的exe太大怎么解决 -
尧喻荆肤: 你的工程可能使用了影子构建方式,也就是你勾选了shadow build这个选项,你可以通过点击左侧的projects来确认是否在shadow build这个选项上打勾. 当勾选shadow build之后,会在与工程所在目录同级的目录下创建一个新的目录,该目录用来存放工程编译过程所产生的所有文件. 你可以在你的GUI目录下查看是不是还存在一个以jishiben2开头的目录,如果有那么这里面就有你需要的exe文件,当然在shadow build选项下面的build Directory也明确标识出了该路径.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网