我正在Visual Studio 2010中开发一个应用程序。调试和发布可执行文件在我的PC上工作正常,但是当我尝试在另一台PC上运行它时<我收到MSVCR100.dll找不到错误。 问题在这里描述: http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/ 在Web上搜索,发现您需要安装Visual C ++可再发行组件。
有没有办法构建项目以便不需要VC ++可再发行组件?
答案 0 :(得分:2)
如您链接的页面所述,您可以选择将库静态构建到您的应用中,这样可以确保始终包含它们。这是在项目的属性中完成的 - > C / C ++ - >代码生成 - >运行时库(选择多线程或调试,不带DLL )。
如果您不想静态链接这些,可以在程序中包含运行时DLL;这对于在您的模块和仅您的模块之间共享特定版本很有用,但是安装适当的可再发行组件(并出于安全原因允许升级等)是首选。
如果可能,您应该使用系统中的DLL,以允许将来的安全补丁应用于您的程序。可再发行组件只有几MB并且与各种操作系统版本兼容,因此要求用户安装它甚至将其包含在安装程序中通常不是问题。
为避免完全使用它们或许是可能的,但稍微不太可行。你必须避免他们提供的任何代码,MSVCR相当于libc;大多数程序使用它的功能,它是系统的标准部分。
答案 1 :(得分:0)
是的,您可以静态链接CRT(检查项目设置)。但它会导致更大的可执行文件大小。