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

12

如何告诉Visual C++ Express 2008静态链接运行库而不是动态链接?我的可执行文件目前在没有安装某种形式的VS的计算机上无法运行,我很想改变这种情况。 :)

4个回答

9

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


6
您是否百分之百确定要这样做?请注意,如果您这样做并且在运行时库中发现安全漏洞,则微软将无法通过Windows更新修补您的应用程序。另一种解决方案是将Visual C++ Runtime Redistributable与您的应用程序打包在一起。它安装非常快,不需要Visual Studio。还要注意,您不应分发链接到调试运行时库的代码,因为这些库需要Visual Studio。有关打包可再发行包的更多信息,请参见此博客文章。编辑:话说回来,这取决于你。我的观点只是您不应仅基于用户必须安装“某种VS”这个想法而忽略动态链接,这是不正确的。

你需要将 not 和 note 颠倒,现在你有了 not 和 not。 :P - GManNickG
8
选择静态链接有许多好处。我个人非常重视“保持清醒”,而这与微软要求你为分发VC++运行时环境所需跳过的 hoops(障碍)是不相容的。 - jalf
@Jalf - 我同意这是一种偏好,并且存在权衡。我已经编辑了我的答案。 - Nick Guerrera

3
请看这个问题的答案:如何使用Visual Studio Express 2005创建完全静态链接的.exe文件?。虽然是针对VS2005 Express的,但答案仍然适用。
对于C运行时,请转到项目设置,选择C/C++,然后选择“代码生成”。将“运行时库”设置从“多线程DLL”更改为“多线程”。
如果您正在使用任何其他库,则可能需要明确告诉链接器忽略动态链接的CRT。

0
你可以在目标计算机上安装 C 运行时 Redist,然后你的可执行文件也会在那里运行,并带有动态链接的 C 运行时。
(哦,抱歉,这已经被提到了)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接