gpt4 book ai didi

c++ - 部署使用 C++ 开发的应用程序

转载 作者:可可西里 更新时间:2023-11-01 09:35:44 25 4
gpt4 key购买 nike

我有一个使用 wxWidgets 作为 UI 框架并在 Windows 7 机器上使用 Visual Studio 2010 编译的应用程序。我正在静态链接 wxWidgets。我的应用程序还使用 C dll 进行处理。

现在我正尝试在另一台新安装的机器 (Win7) 上运行这个应用程序。这没有开发人员环境设置。我已将应用程序的可执行文件、支持的dll和其他支持的文本文件复制到 native 。

当应用程序启动时,它给出了以下消息。

程序启动失败,因为您的计算机缺少 MSVCR100d.DLL。尝试重新安装程序以解决此问题

我发现我的 C 库使用的是调试版本,在 Release 模式下编译它解决了这个问题。但它仍然需要 MSVCR100.dll。我认为解决方法是安装 VC++ 可再发行组件包。但不确定这是最好的方法。

这是我的问题。

  1. 您通常如何部署应用程序?你们也提供 VC++ 可再发行组件包吗?
  2. 我在 64 位机器上编译它并在 32 位机器上测试。这个可以吗?还是我需要为 32 位单独编译?
  3. 我可以静态链接到运行时库吗?这样我就可以发送我的 DLL 和其他文件。
  4. 在构建将在多台机器上运行的可执行文件时,我还应该注意哪些其他常见事项?

以下是我的一些可能相关的设置。

General : 
Use of MFC : Use standard windows libraries
Use of ATL : Not using

C/C++ :
Runtime library : Multi-threaded(/MT)

如有任何帮助,我们将不胜感激。

最佳答案

它试图在没有它的机器上使用仅调试 DLL。

您的问题是由于 msvcr100d.dll 是尾随 d 指示的仅调试 dll。

因此您没有使用/MT,您实际上使用的是/MDd。如果您使用/MT 那么它不会尝试加载该 DLL ...

所以在回答你的问题时:

  1. 我更喜欢静态链接到运行时。
  2. 那真的不是问题。只是不要尝试在 32 位操作系统上运行 64 位编译二进制文件。
  3. 是的。
  4. 注意您的最低规范。即,如果您需要支持 Pentium 3 等,请不要使用 SSE4。

关于c++ - 部署使用 C++ 开发的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4296813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com