【发布时间】:2020-05-14 20:22:29
【问题描述】:
我正在 Vs 2019 中编写一个本机 C++ 应用程序,该应用程序应该能够在新配置的 Windows 10 机器上运行。 问题是,当我在这台机器上运行我的 .exe 应用程序时,我得到了缺少 dll 错误,例如 MSVCP140D.DLL、VCRUNTIME140D.dll 等。 我尝试在客户机上安装来自 MSDN 的 vcredist,并且还尝试从项目配置中的“代码生成”模块中更改“运行时库”。 我还关注了我在这个平台上阅读过的其他一些教程,但我找不到任何真正有用的东西。 我什至试图将丢失的 dll 放在 .exe 文件的同一目录中手动注册它们,实际上它不起作用,但是我正在开发的这个应用程序应该是可再分发的,所以用户应该只需要执行它。
如果我尝试使用其他编译器(例如 MinGw)编译我的程序,它可以工作,但我想尽可能使用 vc++ 默认编译器。
有没有办法解决这个问题?
谢谢!
【问题讨论】:
-
实际上我正在测试 x64 版本和调试
-
Properties->C/C++->Code Generation->Runtime Library下的值是多少? -
您好,感谢您的快速回复!该值设置为“DLL 多线程 (/MD)”,但我也尝试过 (/MDd) 和 /MT
-
调试版本使用
/Mtd,发布版本使用/Mt。在来宾机器上运行应用程序并告诉我们什么 dll,您会收到缺少 dll 错误。 -
这些是标准 C++ 和 C 运行时库的调试版本。注意文件名末尾的 D。它们在代码中有很多断言,并为 malloc/new 分配增加了大量开销,帮助您调试代码。 redist 安装不包括它们,Microsoft 不提供重新分发它们的许可证。不要让你的生活更加困难,因为执行缓慢且未优化的 C++ 代码是没有意义的。您必须部署项目的发布版本。
标签: c++ windows visual-studio visual-c++ exe