Visual C ++ Express 2008的静态运行时库链接

时间:2010-01-09 22:53:06

标签: c++ visual-c++ dynamic static

如何告诉Visual C ++ Express 2008静态链接运行时库而不是动态链接?我的前任目前没有在安装了某种VS的计算机上运行,​​我很乐意改变它。 :)

4 个答案:

答案 0 :(得分:9)

抱歉,我没有VC ++ Express进行测试,但在标准版中我使用了Project Properties - >配置属性 - > C / C ++ - >代码生成 - >运行时库。 Dll和Dll Debug用于动态链接。

答案 1 :(得分:7)

您是否100%确定要这样做?请注意,如果您这样做并且运行时库中存在安全漏洞,Microsoft将无法通过Windows Update修补您的应用程序。

另一种解决方案是将Visual C ++ Runtime Redistributable与您的应用程序打包在一起。它安装速度非常快,不需要Visual Studio。同样重要的是要注意,您不应该分发与调试运行时库链接的代码,因为它们需要Visual Studio。有关打包可再发行组件的详细信息,请参阅此blog post

编辑:据说,这取决于你。我的观点很简单,你不应该仅仅根据用户必须“安装某种VS”的想法来忽略动态链接,这是不正确的。

答案 2 :(得分:3)

请参阅此问题的答案:How do I make a fully statically linked .exe with Visual Studio Express 2005 ?。它适用于VS2005 Express,但答案仍然存在。

  

对于C-runtime,转到项目   设置,选择C / C ++然后'代码   代'。更改'运行时   库'设置为'多线程'   而不是'multithreaded dll'。

     

如果您正在使用任何其他库   您可能需要告诉链接器   忽略动态链接的CRT   明确。

答案 3 :(得分:0)

您可以在目标计算机上安装C运行时redist,并且可执行文件也可以在那里运行动态链接的C运行时。

(哦对不起,已经提到过了。)