【问题标题】:Release not working on different PC发布无法在不同的 PC 上运行
【发布时间】:2016-05-24 22:52:12
【问题描述】:

我对 C++ 和 MS Visual Studio 没有那么丰富的经验。我目前在发布 .exe 并尝试在不同的 PC 上运行该程序时遇到问题。在程序中,我使用了附加库(magick++)。我已将 Visual Studio 2015 中的运行时库配置为多线程 (/MT)。我想,通过这种配置,.exe 文件应该在不同的 PC 上运行,但是当我尝试运行它时,会出现带有“CORE_RL_Magick++.dll is missing on this computer的消息。任何想法,什么可能是错的?

我的第二个问题是,如果我想用动态库 /MD 发布,我怎样才能让库在不同的 PC 上运行?还是我必须先安装库(我的意思是如果我必须将 Imagemagick 安装到计算机上,或者有什么方法可以从 Visual Studio 中的构建中获取必要的库)。

感谢您提供的所有信息。

【问题讨论】:

    标签: c++ dll visual-studio-2015 release


    【解决方案1】:

    你有 CORE_RL_Magick++。 dll 在失败的计算机上某处的路径(包括您的 exe 程序正在运行的目录)中。

    /MD 和 /MT 命令影响使用的运行时,而不影响程序所依赖的其他库。

    因此,使用 /MT,它会将可视 c 库的静态版本编译到 exe 中,但如果链接到魔法 dll,它仍然需要 CORE_RL_Magick++。 dll 以便运行。

    【讨论】:

    • 这可能是个愚蠢的问题,但是 dll 应该在某个特定的路径中,或者我认为我可以将它与 exe 文件放在同一个文件夹中?
    • 同一个目录,或者是windows\system32等路径下的目录
    【解决方案2】:

    我认为 /MD 是一个更好的选择,对于较小的尺寸。

    如果你想在其他电脑上运行程序,你可能需要先在电脑上安装Visual Studio Redistributable(可以在微软网站上下载)。

    【讨论】:

      【解决方案3】:

      同意马丁翟的观点。我在升级到 2015 后尝试在另一台机器上运行我的程序时遇到了这个问题。我想使用的 DLL 尽管是本地的,但找不到。安装 Visual C++ Redistributable for Visual Studio 2015 解决了这个问题。

      【讨论】:

      • 我已经为 VS 2015 安装了 Visual C++ Redistributable(x86 与程序相同),但我仍然收到错误,即缺少库“CORE_RL_Magick++.dll”,但它在与 .exe 文件相同的文件夹。
      • 检查您的开发机器上安装了哪些其他可再发行组件,并确保它们已安装在您的目标机器上。您正在使用的 .dll(因为您没有构建它)可能需要较早的可再发行包或未在目标计算机上安装的可再发行包。您始终可以在 .exe 上使用 Dependency walker,或检查事件日志,这可能会提供更多有关 dll 加载失败时的指示。 (可能是错误版本的 .dll 之类的)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多