我使用Visual Studio 2019使用C ++ WinAPI制作了Windows应用程序。完成后,我将其构建并在计算机上执行。完美运作。然后我发给了没有Visual Studio的朋友。它说,需要打开“ msvcp140d.dll”,“ ucrtbased.dll”,“ vcruntime140_1d.dll”和“ vcruntime140d.dll”。
然后,我在计算机中找到它们,并将它们与应用程序放在同一目录中,然后将其发送给我的朋友。它也很好。
但是我的问题是“有没有办法将它们与Visual Studio 2019打包在一起?” 一个带有大量DLL的小型应用程序有点奇怪。
首先,您发送的文件错误。带有d
后缀的文件仅用于调试,不得分发
您不能重新分发Visual Studio中包含的所有文件;不能将其分发。仅允许您重新分发Redist.txt或在线“ REDIST列表”中指定的文件。无法重新分发应用程序的调试版本和各种Visual C ++调试DLL。有关更多信息,请参见选择部署方法。
最终的可执行文件必须在发布模式下进行编译,并使用这些DLL的发布版本。不要放弃调试二进制文件。由于用于调试目的而添加的逻辑,它们的运行速度非常慢
而且您实际上不需要发送DLL,但是您应该告诉用户安装相应的VC可再发行软件包。这是运行时(CRT为Visual Studio项目包含的功能一样)printf
,memcpy
......你。如果您在项目中不使用任何DLL,则无需查找任何其他DLL。
它也可以在运行时库链接静态通过更改选项/MD
来/MT
。这样,最终的exe文件将是自包含的(不需要其他运行时DLL),但是它也将变得更大,并且在更新软件包以修复错误或性能问题时,您也失去了使用较新的库功能的能力。同样,无论是静态链接还是动态链接,都必须以发布模式进行编译
也可以看看
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句