如何告诉Visual C ++ Express 2008静态链接运行时库而不是动态链接?我的前任目前没有在安装了某种VS的计算机上运行,我很乐意改变它。 :)
答案 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运行时。
(哦对不起,已经提到过了。)