QT 完成项目 要求打包
打包是零经验,所以按照 https://blog.csdn.net/windsnow1/article/details/78004265 前辈的教程,一步步往下进行学习和实践
打包工具:下载链接 The Enigma Protector ;自己的电脑是64x,所以我下了一个的,安装完成
,
构建完成生成,在构建目录下的 release 中找到 exe文件,
将他拷贝到一个空的文件夹中,
以下 是转载的文章 中 的该步骤片段:
在win10下,搜索QT,如下图: 打开红色标记的命令窗口 : 其实在QT目录下是可以找到这个目录的。
接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车后:
输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:
这时我们看程序目录如下: 此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。现在只需要将这一堆文件进行打包 ———————————————— 版权声明:本文为博主「逝者不灭」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/windsnow1/article/details/78004265
Error:这个步骤的时候遇到错误,由于电脑上安装太多QT的原因,自己在选择 Desktop 的时候选择错误,自作聪明的 按照上问中“其实在QT目录下是可以找到这个目录的”,所以我就去当前使用的5.9.6版本的 QT 安装目录下找到并运行了 ,之后如博主「逝者不灭」 所说那样拷贝完成了库文件;按上所说,点 击exe,若能运行则是这一步成功了;
运行后是这样的一个错误:
,查询了一下“无法定位程序输入点” ,
找到一个:
转载
2017-11-13 20:24:40 ze_202020 阅读数 5138
Qt Debug 可以,但是单独运行不行。
这是因为 存在多个 MGWIN, 每个MGWIN的\bin\下 有一个libstdc++-6.dll 导致程序不知道该访问那个.dll
修改方法:
复制一个正确的libstdc++-6.dll到 执行文件夹下(exe 所在的文件夹),即可解决。
原文链接:https://blog.csdn.net/ze_202020/article/details/78524264
我就找了一个libstdc++-6.dll, 放了进去之后还是报一样的错误,
看到网上的错误 都是 类似这种:
又看了几次 博主「逝者不灭」 的windeployqt 步骤后就已经有了libstdc++_6.dll文件,我就想到可能Desktop用错了?
稳妥下就找到QT 中
按照上图这部分的信息找到了
使用 他成功完成了 库文件的拷贝(第三步操作),并且可以进行运行。
因为我自己这项目用到了sqlite数据库,所以还需要把数据库文件放到这个文件夹下,也就是上文说到的 windeployqt 步骤拷贝库文件所到的那个位置。
注:如下:链接数据库路径若是这样:
dbconn.setDatabaseName("database/demo_1.db"); 那么就要将这个database文件夹一起放到exe所在的目录下:这样我自己的项目点击这里的exe就完美运行了,接下来 就下打包这个文件夹了
第五步 Enigma Virtual Box
我下载的一个64位的,和我找到的教程界面不一样==! 又下了一个版本号的Enigma Virtual Box
去到前辈的原文链接:https://blog.csdn.net/windsnow1/article/details/78004265 的文档中 的<4> 中的步骤进行操作
,
在【Files Options】中可以选择是否将文件压缩:
然后点击Process开始打包
啊,终于完事了,感谢自己。感谢所有前辈