2011-12-21 108 views
0

我在Visual Studio 2010中开发应用程序。调试和发布可执行文件在我的PC上正常工作,但是当我尝试在另一台PC上运行它时<我得到MSVCR100.dll未发现错误。 这里描述的问题: http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/ 在网上搜索,发现您需要安装Visual C++可再发行组件。Visual Studio C++ MSVCR100.dll错误运行时

有没有一种方法来建立项目,以便不需要VC++ redistributable?

回答

0

是的,你可以静态链接CRT(检查项目设置)。但它会导致更大的可执行文件大小。

1

正如您链接的页面中所述,您可以选择将库静态构建到应用程序中,从而保证它们始终包含在内。这是在项目的属性 - > C/C++ - >代码生成 - >运行时库(选择多线程或调试,没有DLL)中完成的。

如果你不想静态链接这些,你可以在程序中包含运行时DLL;这对于在你的模块和你的模块之间共享一个特定的版本很有用,但是安装正确的可再发行组件(并且出于安全原因允许升级等)是非常受欢迎的。

如果可能,您应该使用系统中的DLL,以允许将来的安全补丁应用于您的程序。可重新分发的版本只有几MB,并且与各种操作系统版本兼容,所以要求用户安装它甚至将其包含在安装程序中通常不是问题。

为了避免完全使用它们也许是可能的,但稍微不太可行。你将不得不避免他们提供的任何代码,而MSVCR与libc相当;大多数程序使用它的功能,它是系统的标准部分。