QT程序在发布的时候应注意的地方

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

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯IVWEB团队的专栏

Node.js 编写 CLI 的实践

通常而言,Node.js 的应用场景有前后端分离、海量web页面渲染服务、命令行工具和桌面端应用等等。本篇文章选取 CLI(Command Line Tools...

33000
来自专栏linux系统运维

linux任务计划, chkconfig工具,systemd管理服务, unit介绍,target介绍

20250
来自专栏web开发

初识NodeJS

1.JavaScript 模块化规范 浏览器环境 AMD Asynchronous Module Definition RequireJS CMD Com...

739100
来自专栏较真的前端

[译] 调试 RxJS 第2部分: 日志篇

19740
来自专栏Python中文社区

开车啦!小爬虫抓取今日头条街拍美女图

專 欄 ❈追梦人物,电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使用 django 开发网站系统...

54550
来自专栏酷玩时刻

IDE中显示 *.properties 为中文

之前做过几个开源项目(极速开发微信公众号weixin_guide以及IJPay 让支付触手可及),Demo中有涉及到一些配置文件。有些同学下载了之后反馈说有乱码...

11320
来自专栏微信小程序开发

如何使用vue开发一个登录注册组件

本文作者:端,映客的一位前端开发。 要开发某个功能我们就要去思考这个功能怎样实现最快捷最方便,下面以项目中的登录注册组件为例说明 一个功能要尽可能的去拆分比如这...

58280
来自专栏前端布道

JavaScript设计模式与开发实践 - 观察者模式

概述 观察者模式又叫发布 - 订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个目标对象(为了方便理解,以...

36570
来自专栏数据和云

5分钟速成Oracle 12.2 RAC 专家(附ppt下载)

Oracle 12c 在RAC方面提出了很多新的解决方案和特性。这些方案和特性使得Oracle 集群在云和大数据的时代环境下,帮助企业用户上云更具优势。今天我们...

43750
来自专栏idealclover的填坑日常

phpstorm 与服务器保持更新

说起来自己也已经折腾这个网站折腾了几个月了,但是每次更改都要从服务器上把网站文件拽下来,编辑,再放回去(是在是用不惯linux上的vim...配置成本太高......

38810

扫码关注云+社区

领取腾讯云代金券