专栏首页24K纯开源QT程序在发布的时候应注意的地方

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

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

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

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

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Qt写软件系列三:一个简单的系统工具之界面美化

    前言      在上一篇中,我们基本上完成了主要功能的实现,剩下的一些导出、进程子模块信息等功能,留到后面再来慢慢实现。这一篇来讲述如何对主界面进行个性化的定制...

    24K纯开源
  • DirectShow Filter的开发实践

    一、介绍      摄像头图像采集处理在业界有着多种成熟的方案。从老的DirectShow、Grabber技术,到新的Windows Media Foundat...

    24K纯开源
  • CoCreateInstance调用返回代码0x80040154的一种解决方法

    引言       前面的一篇博文中总结了开发Windows Thumbnail Handler的一些经验。在公司实际项目中,需要同时针对图片和视频实现缩略图。同...

    24K纯开源
  • 设计模式之动态代理模式实战

    昨天分享了静态代理的概念及存在的缺点,所以今天讲的动态代理模式十分重要。动态代理在我们工作当中应用相当广泛,如Srping AOP就是动态代理的在开源框架的比较...

    Java技术栈
  • Python搭建脚本环境,配置path环境变量设置超详细步骤

    大多数刚开始学习编程的小伙伴都需要一个从学习程序到运行调试的过程,而其中所编写的程序大部分都是在固定的开发环境下所运行的,

    灰小猿
  • 基础测试: 如果一个HTML文档内含有阿拉伯文,则应该选择以下哪一项?​

    UTF8 是(UNICODE八位交换格式)的简称,UNICODE是国际标准,也是ISO标准10646的等价标准。

    舒克
  • python3爬虫urllib

    在 Python 中有两种方式可以发送 HTTP 请求,分别是自带的 urllib 库和第三方的 requests 库。

    AngelNH
  • Postman 接口测试神器

    官方 github 地址: https://github.com/postmanlabs

    老马
  • http请求,HttpClient,调用短信接口

    项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码。 因为项目是通过maven管理的,所以需要在pom.xml文件中...

    二十三年蝉
  • 【ML】一文详尽系列之CatBoost

    CatBoost是俄罗斯的搜索巨头Y andex在2017年开源的机器学习库,也是Boosting族算法的一种,同前面介绍过的XGBoost和LightGBM类...

    yuquanle

扫码关注云+社区

领取腾讯云代金券