2014-10-09 96 views
0

我目前的问题,与C++ FLTK库(v 1.30),是我从来没有能够创建一个适用于其他PC的Release版本。C++ FLTK 1.30 MSVCR120.dll丢失

在阅读Bjarne Stroustrup的“Programming Principles and Practice using 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) 

我正在编译“Release”。

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

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

+0

您是否将FLTK构建为/ MT?尝试将FLTK构建为/ MT,然后将其与您的程序链接起来,该程序也构建为/ MT。删除“忽略”的文件 - 它告诉你是否有什么错误。如果一切正常,则不应该有任何错误或警告。如果有错误,请修复它们而不是使用忽略。 – cup 2014-10-09 17:02:32

+0

我完全按照您的要求做了,而FLTK测试示例已编译并在另一台PC上运行!但是,我注意到将Stroustrups标头添加到任何项目中导致它无法编译,除非我以Debug模式构建。我会尝试让Stroustrups Headers先生工作,如果这不起作用,我会将其删除。非常感谢! – Cupcake1029 2014-10-10 10:01:35

+0

看看include目录。它们在Debug和Release上都应该相同。 – cup 2014-10-10 11:58:54

回答

1
+0

感谢您的回复。我实际上考虑过这一点,如果没有其他选择,我可能会采取这种做法。但是,我希望我的程序尽可能便携。例如,有了这个修复程序,如果我最终在一台无法访问互联网的工作电脑上工作,我无法让我的程序正常工作。 – Cupcake1029 2014-10-09 04:56:49

+0

在与您的应用程序相同的目录中安装“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ redist \ x86 \ Microsoft.VC120.CRT”中的文件。 – 2014-10-09 05:07:27

+0

其实,现在我想到了,这是一个非常好的主意。尽管如此,我仍然很高兴能够让我的程序完全独立。谢谢。 – Cupcake1029 2014-10-09 07:54:21