精华内容
下载资源
问答
  • 由于各人电脑上的系统环境千差万别,因此,即使是采用了 release 方式编译,在你自己电脑上生成的 Qt 可执行程序换到别人电脑上,依然可能无法运行。 那么,这究竟该如何解决呢? 首先,以 release...

    本文转载连接: https://jingyan.baidu.com/article/3065b3b6a8789abecff8a497.html

     

    程序写好后的最终目的是交付用户使用。由于各人电脑上的系统环境千差万别,因此,即使是采用了 release 方式编译,在你自己电脑上生成的 Qt 可执行程序换到别人的电脑上,依然可能无法运行。

    那么,这究竟该如何解决呢?

    首先,以 release 方式编译源代码,然后将生成的 exe 程序放到一个单独的文件夹中。

    再从开始菜单打开 Qt 命令行工具。

    在命令行中,进入到第一步中 exe 程序所在的文件夹。

    再使用 Qt 自带的 windeployqt 工具命令,其语法格式为:

    windeployqt  可执行程序名

    说明:windeployqt 命令可以搜索指定程序需要的所有依赖库,并自动将它们复制到该程序所在的目录中来。

    执行上述命令之后,再转到 exe 的目录,就可以看到相关的依赖库文件都已经复制好了。

     

    在此需要特别提醒大家的是,windeployqt 命令只解决发布 Qt 程序时的依赖库,但并不包括 Qt 程序在运行时需要使用的自定义资源文件(如图片、音乐、文本等)。

    因此,如果你的程序中使用了相关的资源,需要将这些资源文件一起带上。在我这个聊天程序中,由于使用了一些位于 images 目录下的图标资源,所以需要手动将 images 目录下的内容全部复制过来。

    现在,只需要将该文件下的所有文件一起打包给用户,Qt 程序就可以在用户的电脑上顺利运行了。

     

    展开全文
  • qt编译好的release文件夹里面的.exe文件怎么能用了呢?

    上网搜了很多教程。发现并不能适合自己,总是出现“this application has requested the runtime to terminate it in an unusual way.”但是我也加了好多库进去,但还是不行。

    后来我终于解决了这个问题。

    方法也很简单,就是库没有完全加进去。具体做法如下:

    1.把编译好的release文件中的.exe文件双击打开。会提示你缺少.dll文件。按照提示将那些.dll文件添加到.exe文件的目录下。再运行,可能自己的电脑上面可以运行了。但是在别人的电脑上面还是不能运行。怎么办呢?

    2.其实这并没有完全将.dll的库文件拷贝到.exe文件夹中。还有2个文件夹没有拷贝,分别是:platforms和plugins这2个文件夹。只要在Qt的文件夹中,找到这2个子文件夹,复制到.exe的文件夹中就可以了。

    3.问题成功解决。


    展开全文
  • 我做了一个很小的程序,需要传给别人用,但是我在自己的电脑上都运行不了这个exe程序。我用debug文件夹下找到这个exe程序的,就是我创建的文件名。说没有动态库,我把动态库放到与这个exe程序一个文件夹下,还是这样...
  • 由于程序要从自己的电脑上拷贝到一个公共机上面进行运行,但那台公共机是没有安装VS和QT的,所以,很多移植问题就应运而生了。 问题一:64位构建套件换32位构建套件发生外部头文件找到的情况 这个问题的解决方案找...

    前言

    在这个过程中,遇到了好几个难题,这里稍微做一下记录,防止遗忘。

    问题背景

    由于程序要从自己的电脑上拷贝到一个公共机上面进行运行,但那台公共机是没有安装VS和QT的,所以,很多移植问题就应运而生了。

    问题一:64位构建套件换32位构建套件发生外部头文件找不到的情况

    这个问题的解决方案找了很久都没有找到,最后通过询问同事,了解到还是我自己程序在写的过程没有注意一些别人写的一些代码。最关键的语句就是注意你在一些头文件的包含上面有没有这句话:

    contains(QT_ARCH,x86_64,x86_32)
    {
    }
    

    我这里原来的代码是只有x86_64的,意思是只有64位的构建套件能够使用,32位的无法使用这个包含文件。

    问题二:exe的打包过程

    首先,你先将你要打包的exe文件放在一个文件夹之中。
    在这里插入图片描述
    然后,打开QT自带的命令行界面,最好你如果是32位就用32位的,64位的就用64位的。
    然后到那个cd 到display.exe的文件之下。
    接下来,就到正题了,使用windeployqt exe文件名称。
    就会出现这样的效果:
    在这里插入图片描述
    你就可以看到这个文件夹下面多了很多东西。
    在这里插入图片描述
    这个时候,你在执行以下display.exe,有可能会提示一些错误,你就全局找找看,可以用软件Listary

    问题三:放到公共机的时候,公共机提示问题:“运行提示应用程序无法正常启动(0xc000007b)”

    因为这个时候,那台公共机上面有可能并没有微软的运行时环境,所以,就会出现这个错误,那么什么是这个环境呢?这个网址就是软件地址,你就按照你要执行的程序时32位的还是64位的,执行相应的就可以了。

    问题四:未把插件文件夹放进去

    注意:这里要将你输出的整个插件文件夹都放进去。插件文件夹输出的目录是这句话:

    PROJECT_BINDIR=$$PWD/../../AppX64
    DESTDIR      = $$PROJECT_BINDIR/BoardPlugin  #其他目标文件生成路径,
    

    问题五:未把该公共机对应的依赖库放在exe文件的同等级别的文件夹下。

    问题六:打包时经常需要加入公共机上面没有的系统的一些运行文件

    这里打包一下:运行需要的dll文件,如果还缺一些东西的话,就自己用Listary去查找一下。

    问题七:公共机上电或下电时不允许闪烁。

    展开全文
  • 注意,这里,如果直接用windeployqt.exe来生成的话,可能会出现在别人电脑上打开的情况,反正本人是出现了。可能的报错有很多,缺少部分dll,或者直接应用程序错误。 故,需要增加一个环节..

    对于原理就不再赘述,本文只用最简洁的话,说明一下操作流程,以便于打包时参考  

    使用QT自带的打包程序windeployqt.exe来进行打包

    找到QT creator中项目构建目录中的路径,路径下有exe文件

    将exe文件放到一个新的文件夹中

    点开QT命令框,你使用什么套件,就点开相应的命令框:

    注意,这里,如果直接用windeployqt.exe来生成的话,可能会出现在别人电脑上打不开的情况,反正本人是出现了。可能的报错有很多,缺少部分dll,或者直接应用程序错误。

    故,需要增加一个环节:搜索一个bat文件vcvarsall.bat

    这个bat是VS中的:

    本人电脑上安装了两个版本的VS,所以有两个。

    网上有的人再QT命令框中有这样的提示:Remember to call vcvarsall.bat to complete environment setup!

    但是我的没有,不太明白是什么意思,但是这个方法确实行之有效

    在命令框中输入命令:call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86。按你实际的路径输入。

    结果为:

    然后进行打包操作

    先进入自己所放exe文件的路径,cd 后接路径即可,然后windeployqt 后接某某(你的exe名字).exe即可

    这时候你可以看到qt为你自动增加了很多dll到你的文件夹

    到这里其实基本就完成了。

    但是实际工作中,你会发现,将这样一个文件夹打包就说你开发了一个应用程序实在是有点儿low。所以最好把整个文件夹打包成一个exe。这样清晰明了。

    这个工作可以采用Enigma Virtual Box来完成

    分别输入你的exe文件路径和你想要将保存的打包exe保存在哪儿

    然后点击add,添加依赖的dll,包括之前生成的文件夹

    files options可以选择compress files,这样生成的exe所占空间会小

    最后点击process就完成了

    展开全文
  • 今天打开电脑后,客户端和服务端能建立连接,但是把可执行程序拷到别人电脑上就能够正常连接。 关闭电脑防火墙后仍能建立连接,客户端和服务端都运行在本机上。 请问有朋友遇到过类似情况嘛?可能是哪些...
  • 求大佬帮助 用Qt写了一个东西,想生成exe文件,在网上搜完用命令行将其他文件生成了,...但是发出来还是别人还是运行不了。 求大佬帮助,想写出来的能发给别人看啊[face]emoji:043.png[/face] ...
  • Qt应用程序文字显示

    千次阅读 多人点赞 2017-10-27 19:16:04
    当在别人电脑(windows7、windows10,分辨率都为:1920*1080)上运行时就出现了一些文字被遮挡覆盖的现象。查阅了大量资料,发现没有具体讲述是什么原因的(可能查阅资料能力有限),于是自己分析了几天,终于有了...
  • Qt打包

    2019-10-27 10:21:16
    自己电脑生成的release版本,在别人电脑一定能运行,因为缺少相关的库。我查了下资料,简单总结了下打包的方法。 1、相关库的补充 吧生成的exe程序拷贝到一个单独的文件夹里, 在电脑左侧打开qt的控制台,然后...
  • Qt程序打包发布

    2017-09-29 09:46:22
    其实如果我们自己讲生成的可执行程序包换个路径再打开,也许你就运行不了了。提示少了某些库。因此就设计到打包问题。将我们的可执行程序不管发到哪个路径、放到谁的电脑上,都能运行起来。那么该怎么打包程序发布呢...
  • Qt打包生成一个exe

    2020-02-21 09:26:40
    说明:打包的详细步骤网上有很多教程,我也是参考了别人的教程,但是最终生成的exe文件还是能在别人电脑运行,后来发现是用Engima Virtual Box打包的时候"添加文件"这一步有问题。 ##打包步骤 1.用Release...
  • 最近别人给我发了一个他的Qt项目,在我电脑Visual Studio上死活运行不成功,报错部分如下图所示:E1696 无法打开源文件 xxx 折腾许久,终于发现了原因orz… 不过在这之前建议你先检查下: Qt库有没有安装(安装时有...
  • Max下发布Qt程序

    2017-02-24 14:25:46
    1.Qt新建Qt Widgets Application工程,最后生成的可执行文件时xxx.app。...所以如果把xxx.app放到别人电脑上就可以运行不了。为了方便拷贝和移动,我们可以借助Qt的一个工具实现应用程序的发布。3.macdeplo
  • 知道为什么别人电脑上安装同款vs2015,Qt,都没有配置OpenGL,他们就可以运行glclear()之类的OpenGL的代码,我的电脑可以,气! 搜了两天,终于找到了解决方案,喜来记录,奔走相告。 此为参考链接:在...
  • VS+Qt5环境下建立一个Qt工程,在本机运行没问题,可是把.exe和用到的.dll打包发到别人电脑上却运行不了,报错如下: 为什么会这样?这是因为程序运行需要Qt本身的一些dll,把这些缺失的dll补上就可以了。  ...
  • 本人用qt开发伺服驱动器上位机,别人用着崩溃了,但又是多人合作开发,谁都知道是谁的代码错了,唯有定位错误才能解决了,所以亲身经历,总结一下。 一、首先qt dmp文件的生成 1、在pro文件里添加 QMAKE_CFLAGS_...
  • 因为我们可能让所有用我们程序的人电脑上也要装上Qt,然后配置好环境,那样也太麻烦了。C++的程序中大部分都是使用的动态链接库,往往一个程序里会带着很多的dll,如果自己去找dll再复制到exe程序所在目录下,很...
  • 我在自己电脑使用qt开发程序读取Excel文件,...别人电脑其一安装了WPS和office2016,其二只安装了office2007,知道第一个是不是两个冲突的原因,第二个是版本太低的原因?</p>
  • 自己的电脑上运行没有任何问题,一打包到别人电脑上就点击无反应了。一开始还以为是依赖的DLL缺失,折腾来折腾去也没成功。最后发现是把数据库创建的操作放在 QApplication a(argc, argv);之前了。。。。。。。把...
  • QT的命令窗口编译的程序,在别人电脑上有些能正常运行有些就会出现0xc000007bde的错误,或者提示缺少xxxxx.dll文件缺失的错误,然后你将将这个动态库文件复制过去你就会发现最后还是会出现0xc000007b的错误,其实...
  • QOCI driver not loaded

    2019-07-05 15:46:19
    自己编译QT的QOCI驱动一直成功,所以从论坛上下载了别人编译好的压缩包,然后运行QT程序倒是能找到QOCI驱动了,但是一直显示 **QSqlDatabase: QOCI driver not loaded QSqlDatabase: available drivers: QSQLITE...
  • 开发者再也不会惧怕将代码交给别人维护,不用担心别的开发者在代码里搞“破坏”。后人接手一段有测试用例的代码,修改起来也会更加从容。测试用例里非常清楚的阐释了开发者和使用者对于这端代码的期望和...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

qt别人电脑运行不了