C++ FLTK 1.30 MSVCR120.dll 丢失

Posted

技术标签:

【中文标题】C++ FLTK 1.30 MSVCR120.dll 丢失【英文标题】:C++ FLTK 1.30 MSVCR120.dll Missing 【发布时间】:2014-10-09 04:19:17 【问题描述】:

我目前使用 C++ FLTK 库 (v 1.30) 的问题是,我一直无法创建在其他 PC 上正常工作的发布版本。

在阅读 Bjarne Stroustrup 的“使用 C++ 进行编程原理和实践”时,我开始真正享受使用 FLTK 的乐趣,只是意识到如果不安装 DLL 或运行时,我无法在其他 PC 上使用我的程序。

所有代码都可以正常运行和编译,但是当我尝试将其放在另一台 PC 上时,它会弹出错误“MSVCR120.dll missing”或类似的内容。

我的 IDE 是 Microsoft Visual Studio 2013 Professional,我的 FLTK 版本是 1.30。

我的项目属性如下:

其他依赖项: fltk.lib wsock32.lib comctl32.lib fltkjpeg.lib fltkimages.lib

(显然,对于调试模式,它应该是 fltkd.lib、fltkjpegd.lib 等)

      > Ignore Specific Default Libraries:

libcd.lib LIBCMT.lib(我添加了 LIBCMT,以便在 /MT 中编译时不会产生错误,这可能是个坏主意,但除非我尝试在另一台 PC 上运行,否则程序仍然可以编译和运行而没有错误)

      > Runtime Library: Multi-threaded (/MT)

我正在“发布”中编译。

我遵循了解释如何安装 FLTK 的书的附录中的每一条指令,除了我使用了不同的版本(FLTK 1.1.9 似乎无法编译)并且我构建并运行了 FLTK.sln 而不是 . dsw。

当我在VS2013中创建项目时,我选择了空项目。除了我提到的之外,没有更改任何配置属性。

【问题讨论】:

您是否将 FLTK 构建为 /MT?尝试将 FLTK 构建为 /MT,然后将其与您的程序链接,同样构建为 /MT。删除“忽略”的文件 - 它会告诉您是否有问题。如果一切正常,则不应有任何错误或警告。如果有错误,请修复它们而不是使用忽略。 我完全按照您的要求做了,FLTK 测试示例在另一台 PC 上编译并运行!但是,我注意到将 Mr. Stroustrups 标头添加到任何项目都会导致它无法编译,除非我在调试模式下构建。我将尝试让 Stroustrups Headers 先生工作,如果这不起作用,我将删除它们。非常感谢! 查看包含目录。它们在 Debug 和 Release 上应该是相同的。 我不确定你的意思,问题出在标题中。例如,每次我尝试 #include "Simple_window.h" 时,它都会产生错误,指出 _free 和 _malloc 已在 LIBCMT.lib 中定义。它还会产生错误,说“error LNK2005:”private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已经在 LIBCMT.lib(typinfo. obj)" 【参考方案1】:

在另一个上安装Visual C++ Redistributable Packages for Visual Studio 2013 个人电脑。

【讨论】:

感谢您的回复。我实际上考虑过这一点,如果没有其他选择,我可能会诉诸于此。但是,我希望我的程序尽可能便携。例如,通过此修复程序,如果我最终使用无法访问 Internet 的工作 PC,我将无法让我的程序运行。 其实,现在想来,这真是个好主意。尽管如此,我还是很高兴能有一种方法让我的程序完全独立。谢谢。 静态链接到 CRT

以上是关于C++ FLTK 1.30 MSVCR120.dll 丢失的主要内容,如果未能解决你的问题,请参考以下文章

C++ 应用程序(调试版)包含 VS 运行时库 msvcr90.dll 和 msvcr90d.dll

在 C++ 中使用 FLTK 的简单电话簿

Visual C++ 中的 MSVCR90.dll 分析 [关闭]

FLTK:重写 FL_box 构造函数。 C++

使用 FLTK 在形状中填充颜色的 C++ 不适用于圆形

Makefile 结合了 fltk 和 C++ 文件