Windows下应用程序发布的库依赖问题解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下应用程序发布的库依赖问题解决方法相关的知识,希望对你有一定的参考价值。

参考技术A Windows下开发程序难免会用到动态链接库,然而库依赖在发布时非常容易导致应用程序无法正常启动,常见情况有以下几种:

VS自带有一个dumpbin工具,在要发布应用程序之前,可以使用dumpbin /dependents xx.exe来查看库依赖情况:

由此我们可以把依赖的动态库均打包一份防止缺少dll的问题发生,但是要尤其注意dll的版本问题,否则会导致问题二的发生。

上面说到该问题发生的原因在于应用程序依赖的当前环境下dll版本不对,根本上的解决方案就是在打包时就做好版本一致的检查。

这个是后来遇到的情况,其实原因与问题二相同,只是库之间的依赖传递不太容易发现,出现这个提示说明当前环境下的ucrtbase.dll是不兼容的,也就是版本不对,需要把开发环境下的ucrtbase.dll打包进去或者安装VS运行环境。
嗯还是用后者来的方便,一步到位,再加上Qt自带打包工具,Visual Studio和Qt的库依赖问题就基本解决了。

还有一点值得一提,因为有些系统级的动态库在不同版本OS下虽然名字相同但实现和依赖差别很大,如ws2_32.dll,因此在部署环境下不要随便使用开发环境的版本。

以上是关于Windows下应用程序发布的库依赖问题解决方法的主要内容,如果未能解决你的问题,请参考以下文章

gui中windows的JavaFX依赖关系

windows下如何安装Python的库?

CMake和静态库顺序

Datastream 开发打包问题

Android:如何创建一个没有冲突依赖的库

解决windows 下 mysql命令行导入备份文件 查询时乱码的问题