---恢复内容开始---

我们用QT开发好的应用程序,如果要发布到其他计算机上运行怎么办呢?我们在用VC编程时,单独运行编译好的可执行文件时,经常会发现提示缺少动态库。用QT编程也不例外,在一定程度上,编写好的QT程序会依赖一些动态链接库,包括MSVC运行库,已经QT自身的一些动态链接库。这是由于程序在编译时采用了动态链接的原因。如果我们在编译初期,就设置为静态编译,那么就不会出现这种情况了。动态链接机制是程序开发的一把双刃剑。

既然问题出现了,我们想着解决的办法。很自然的一种想法就是,程序需要链接什么动态库,我们就给它找出来放在一起。有些人可能会问:那我在用IDE开发的时候,无论是Debug还是Release版本,都可以完美运行,这是为什么呢?答案很简单,IDE在建立工程时,就会自动设置好当前工程的工作路径和环境变量。如在VS系列中,可以通过设置"VC++目录"来制定编译器搜索路径。搜索什么?这包括很多,如include,bin,src,lib等。程序在进行编译链接时,就会自动在这些路径下搜索需要的文件。当编译好的目标程序直接运行时,装载器会自动加载必要的系统动态链接库,但是基于特定环境的动态库在当前路径下如果不存在,那么它就不知道去哪里找了。于是程序加载失败。

在QT5环境下,要确定需要哪些动态链接库,可以用Process Explorer来查看。我开发的程序所以来的动态库如下:

这几个是比较基本的动态链接库,这是因为程序简单。如果开发的功能复杂,程序所以来的动态库将更多。但是只要用process explorer一一找出来即可。

---恢复内容结束---

QT程序在发布的时候应注意的地方的更多相关文章

  1. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  2. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

  3. Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  4. QT程序打包发布

    本来感觉这是一个简单的操作,今天看见群里有人在问这个问题,他说网上查了很多都不成功,突然就想把自己初学的时候记录一下! 题目谢了QT程序的打包发布,那就是两步骤:打包+发布! 注释:这篇博文用的是Qt ...

  5. Qt 程序打包发布总结 转

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  6. Qt 程序打包发布

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,Qt 官方开发环境里自带了一个工具:windeployqt.exe.在Qt安装目录如:C:\Qt\Qt5.7. ...

  7. QT程序打包发布(双击运行)

  8. 在Linux下使用linuxdeployqt发布Qt程序

    一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...

  9. Qt 静态编译发布和动态编译发布

    静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...

随机推荐

  1. win 10 系统激活

    win10企业版永久激活方法?win10企业版是针对企业用户推出的版本,随着win10系统的不断完善,现在越来越多的人选择升级win10,升级完系统就需要激活它.那么今天就为大家分享一下怎么永久激活w ...

  2. 微信小程序UI学习

    1.大纲: 2.flex的布局: 3.相对定位和绝对定位: position: relative   相对定位 position: absolute  绝对定位

  3. CTF—WEB—sql注入之宽字节注入

     宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码(GBK就是常说的宽字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字 ...

  4. CSS未完

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  5. C语言循环队列

    #include<stdio.h> #include<stdlib.h> #include<string.h> //循环队列 typedef struct { in ...

  6. 点云ICP注册

    原文链接 背景 两个点云要注册在一块,一般分两个步骤:先做一个大致的对齐,也就是所谓的初始注册,一般可以通过一些可靠的点对来计算得到(如图3所示):然后在初始注册的基础上进行精细注册,提升注册的精度( ...

  7. python基础--面向对象之绑定非绑定方法

    # 类中定义的函数分为两大类, #一,绑定方法(绑定给谁,谁来调用就自动将它本身当做第一个参数传入) # 1,绑定到类的方法:用classmethod装饰器装饰的方法. # 对象也可以掉用,仍将类作为 ...

  8. [转帖]SUN/Oracle JDK还是OpenJDK?

    你安装的是 https://www.cnblogs.com/shoufeng/p/9719995.html 目录 1 如何查看你安装的JDK版本 1.1 要用到的命令行工具 1.2 查看JDK的版本 ...

  9. Zookeeper群起脚本启动失败及查看状态出现:Error contacting service. It is probably not running

    1.问题: 群起脚本启动后查看jps没有出现:QuorumPeerMain Zookeeper正常启动但是群起脚本查状态出现:Error contacting service. It is proba ...

  10. 一道最大公约数的题:easy number

    现有n个Zack,每个Zack有一个一个能力值,从这n个Zack中选出k个,使他们的最大公约数的值最大 [输入格式] 第一行有一个整数n,代表有n个Zack 第二行n个整数ai,代表每个Zack的能力 ...