qt发布后在32位系统可以运行但无法运行

qt发布后在32位系统可以运行但无法运行,第1张

原因可能有以下:

1、首先考虑第三方库没有配置好,如果用的库是动态库,运行时要把相应库的dll放在程序运行目录下。

2、如果不确定缺什么库,转到运行目录下直接点击试试能不能运行,将相应库补齐。

3、其次就是看程序有没有段错误,查看数组有没有越界等。

以找另一台的电脑上去复制下这个缺失的文件,看看能否解决问题

或者你可以尝试使用腾讯电脑管家来修复缺失DLL文件

具体方法是,打开腾讯电脑管家--电脑诊所--软件问题--丢失Dll 文件--一键修复--完成

如果还是解决不了,去脚本之家下一个文件直接复制进去就能搞定了

如果找不到,还可以下载一个dx修复工具30增强版,去修复一下

1、首先创建根目录,再将Qt编译后的可执行文件放在目录上。

2、其次目录下创建一个脚本文件,可以给其可执行权限命令为,执行脚本文件。

3、最后继续执行可执行文件会出现错误,将文件夹放到没有Qt环境的linux系统下也可以正常运行程序了。

在Qt助手(assistantexe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,包括QT支持的Windows、MAC、Linux(KDE和GNOME)都有相应的方法。

下面是我翻译的关于Qt52:Setting the Application Icon的译文,如有不合理的地方还望大家指出,原文来自QT52助手的Set the Application Icon一节。

设置应用程序图标

应用程序图标,通常显示在一个应用程序的顶层窗口的左上角,可以通过调用QWindow:: setWindowIcon()设置。

为了改变可执行的应用程序文件本身的图标,因为它被呈现在桌面上(即,在应用之前执行)上,有必要使用另一个依赖于平台的技术。

内容

一、 在Windows上设置应用程序图标

二、 在 Mac OS X上设置应用程序图标

三、 在通用的Linux桌面上设置应用程序图标

1、K桌面环境 (KDE)

2、GNOME

一、在Windows上设置应用程序图标

首先,创建一个包含icon图像的一个ico格式的位图文件。这个可以使用诸如微软的VC++来完成:

选择File|New菜单,然后在出现的对话框中选择File选项卡,并选择图标。(注意:你不需要加载你的应用程序到Visual C++中;在这里我们只使用其图标编辑器。)

保存上面的icon文件到你的应用程序的源代码目录,例如,名为myappicoico。

然后,假设你正在使用qmake生成你的makefile文件,你只需要添加一个单一的行到您的Pro项目文件:

[cpp] view plaincopy

RC_ICONS = myappicoico

最后,重新生成你的makefile和你的应用程序。exe文件将通过在资源管理器中的图标来表示。

然而,如果您已经有了一个rc文件,例如名为myapprc文件,您想重用该文件,那么需要以下的两个步骤:

首先,在myapprc文件中添加一个单行的文本,如下:

[cpp] view plaincopy

IDI_ICON1 ICON DISCARDABLE "myappicoico"

然后,在你的myapppro文件中添加如下行:

[cpp] view plaincopy

RC_FILE = myapprc

如果你不使用qmake,必需的步骤是:首先,创建一个rc文件,并运行rc或windres程序用于该rc文件,然后将得到的res结果文件链接到你的应用程序。

二、在 Mac OS X上设置应用程序图标

应用程序图标,通常显示在应用程序的停靠区域,是通过调用QWindow::setWindowIcon()在窗口上设置。在函数调用之前,程序可能出现在应用程序的停靠区域,这是可能的;在这种情况下,默认的图标会d跳的动画过程中出现。

为了确保正确的图标出现,当应用程序被启动,和在Finder这两种情况下,有必要采用一种平台相关的技术。

虽然许多程序可以创建图标文件(icns),推荐的方法是使用由苹果公司(在Developer/Application文件夹)提供的图标编辑器程序。图标编辑器允许您导入多个不同大小的图标(在不同的上下文中使用),以及与他们一起去的屏蔽图。在您的项目目录中将所有一系列的图标保存在一个文件中。

如果您正使用qmake生成makefile文件,您只需要将一个单一的行添加到您的pro工程文件。例如,如果您的图标文件的名称是myappicns,并且您的项目文件名称是myapppro,加入这一行到myapppro:

[cpp] view plaincopy

ICON = myappicns

这将确保qmake把你的图标放在适当的位置并为图标创建一个Infoplist条目。

如果你不使用qmake,你必须手动执行以下几点:

1、为您的应用程序(使用PropertyListEditor,在Developer/Applications中可以找到)创建一个Infoplist文件。

2、在Infoplist文件(同样,使用PropertyListEditor)关联您的icns记录和CFBundleIconFile记录。

3、将Infoplist文件复制到你的应用程序包的Contents目录。

4、复制icns文件到你的应用程序包的Contents/Resoures目录。

三、在通用的Linux桌面上设置应用程序图标

在本节中,我们简要地介绍一下在两种常见的Linux桌面环境:KDE和GNOME,为应用程序提供图标的相关问题 。为这两种桌面,用来描述应用程序图标的核心技术是相同的,也可以适用于其他,但具体到每一个来讲也有各自的细节。对使用这些Linux桌面系统的标准信息的主要来源是freedesktoporg。有关其他Linux桌面的信息,请参阅您感兴趣的桌面文档。

通常情况下,用户不直接使用可执行文件,而是通过点击桌面上的图标来启动应用程序。这些图标是包含带有关于它的图标信息的应用程序的描述表示的“桌面项”文件。这两种桌面环境都能够在这些文件中检索信息,并且可以用它们来生成应用程序的快捷方式到桌面上,在开始菜单中,或者在面板上。

有关桌面项文件的更多信息,可以在Desktop Entry Specification中找到。

虽然桌面项文件可以有效地封装应用程序的详细信息,我们仍然需要将图标存储在每个桌面环境中的常规位置。用于图标的一些位置在Icon Theme Specification中给出了。

虽然用于定位图标的路径依赖于在桌面上的使用和它的配置,下面所有这些目录结构应该遵循相同的模式:子目录都按照主题,图标大小和应用程序类型进行组织。通常,应用程序图标被添加到高彩主题,因此方形的应用程序图标的大小为32像素,它将被存储在hicolor/32x32/apps目录的图标路径的下方。

1、K桌面环境(KDE)

应用程序图标可以被所有用户或者一个单一的用户安装使用。当前登录到他们的KDE桌面的用户可以通过使用kde-config发现这些位置,例如,通过在终端窗口中键入执行下列 *** 作:

[cpp] view plaincopy

kde-config --path icon

通常情况下,被输出到stdout的以冒号分隔的路径列表中包含了用户特定的图标路径和全系统的路径。下面这些目录中,可以根据在Icon Theme Specification中描述的约定来定位并安装图标。

如果您正在专门为KDE开发,你不妨利用KDE build system的优势来配置您的应用程序。这可以确保你的图标被安装在KDE的适当位置。

KDE的开发者网站是>

左下方的小电脑图标,将debug改成release,重新组建,再去工程目录下的release文件夹下就可以看到exe文件了。

如果是想要打包发布程序,使得程序可以在其他电脑上运行还需要拷贝动态运行库的。

需要将待发布的release版的exe文件和dll文件放到一个文件夹下

具题需要以下的dll文件:

可以去你的Qt安装目录下复制,我这里是:D:\Qt\Qt511\511\mingw48_32\bin

platforms文件夹下面包含:qminimaldll和qwindowsdll

所在的文件夹是:D:\Qt\Qt511\511\mingw48_32\plugins\platforms

我看不出来Android需要QT的理由。在我看来,Android现有的原生界面和服务API已经足以满足需要,为什么我们一定要引入新的开发工具?我知道有很多人可能会争论说这是为了可移植性,但是现在手机应用的开发成本并不算高(事实上整个软件世界的开发

华开发

原创

关注

2点赞·1821人阅读

Qt程序编写完成后,我们应该怎么给其他人安装呢?其实我们只需要知道Qt程序所依赖的动态库就可以直接拷贝将exe和动态库拷贝到其他人电脑上直接运行(也就是传说中的绿色免安装版)。Qt所依赖的动态库我们通过部署来获取。Qt程序部署有两种方式,一种通过QtCreator获取,另外一种是在cmd窗口使用windeployqt命令获取。

1QtCreator部署exe程序

我们首先新建一个Test工程(如果对如何创建工程不清楚可参考Qt第一个例程)。

首先我们先不部署看一下生成目录中包含哪些文件。

在该文件夹中实际上只有Textexe有用,其他都为中间文件可以删除。

接下来我们看如何使用QtCreator部署程序。新建完成后构建->部署项目”Test”按钮是不可用状态,需要我们先设置一下部署流程。

点击左侧项目按钮,主窗口切换到构建界面。再次点击左侧Run按钮,主窗口就切换到运行设置界面。在此界面,点击添加部署步骤,选择自定义处理步骤。

在命令编辑框可以输入windeployqt。

在参数编辑框中点击右侧的A->B按钮。

这时会d出参数的一个选择界面。在这个地方我选择了CurrentRun:Executable:FilePath这个参数。在界面下方我们可以看到这个参数代表的是E:/qt/build-Test-Desktop_Qt_5_11_2_MSVC2017_64bit-Debug/debug/Test,也就是执行程序所在路径和执行程序的名称。

但实际上我们还需要在该参数后面加个exe,表示这是执行文件。在有的版本中可以找到直接带exe的参数,但本人使用的Qt 5112中没有找到。如果有知道的朋友可以留言告知一下。

到这个时候我们的部署步骤就添加完成。接下来我们再找到编辑界面。只需点击左侧的编辑按钮即可。

然后在项目上右键点击,选择部署按钮。

在编译输出窗口看到以下信息说明部署完成。

接下来我们再看一下构建目录下的文件。这个时候我们发现这个目录下会多出很多dll文件。这就是我们执行文件所以来的动态库。我们把这个文件夹拷贝给用户,用户点击exe就可以运行了。但这种方式有个弊端就是会有很多中间文件,比如mainobg,mainwindowobj等。我们需要把这些文件删除或者写个脚本删除这个文件。

2cmd窗口部署exe程序

在cmd窗口部署exe程序之前,我们需要将windeployqt所在路径配置到环境变量中。

右键点击计算机,选择属性,d出下面的对话框,选择高级系统设置。

在系统属性中选择高级->环境变量。

选择系统变量的Path变量,点击编辑。

将windeployqt所在路径添加到变量值中(需要注意要在路径前添加;)。Windeployqt默认路径为C:\Qt\Qt5112\5112\msvc2017_64\bin。C:是我的Qt安装盘符,这个需要根据大家自己的路径选择。msvc2017_64是我使用的编译器。每个编译器下都有自己的Windeployqt。添加完成后点击确定按钮。准备工作已经做完了,我们可以开始部署程序。

首先我们将exe程序单独拷贝的一个文件夹中。

我们使用快捷键win+R打开运行界面,输入cmd点击回车。

还有另外一种方法是直接在文件夹路径位置输入cmd,点击回车。

这时打开的路径就是exe所在路径,否则需要先跳转到exe所在路径。

在cmd窗口输入windeployqt Testexe,然后点击回车。

看到如下信息就说明部署已经完成。我们只需要将此文件夹拷贝给用户即可。

3总结

Qt程序部署看似两种方法其实核心是一致的,都是调用windeployqt生成所需动态库,只不过是使用Qt Creator方法配置完成后只需点击按钮即可,更为方便一些。

以上就是关于qt发布后在32位系统可以运行但无法运行全部的内容,包括:qt发布后在32位系统可以运行但无法运行、如何解决QT程序发布时的dll依赖问题、linux发布qt程序怎么这么复杂等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9356844.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存