为什么有些C++项目需要安装运行时包,而其他一些则不需要?
编辑:如何使项目在没有运行时的情况下正常工作?
编辑:如何使项目在没有运行时的情况下正常工作?
有些项目是静态链接的,而其他项目则依赖于在运行时加载的动态库。要将您自己的项目进行静态链接,您需要更改项目配置 - 如何更改取决于您使用的编译器/链接器和/或IDE。
我认为这是指VS2005服务包1运行时。由于某种原因,微软添加了一些不向后兼容的功能,因此使用VS2005sp1构建的任何应用程序都需要与之配套的运行时。
如果您使用的是作为DLL链接的标准C/C++库,而不是静态库,则需要安装运行时包。因此,避免这种情况的一种方法是将标准C/C++库静态链接(C++项目设置)。这可能在您的情况下可行或不可行。
如果不行,您可以使用Visual Studio分发中的依赖项工具来识别应用程序所需的DLL,并将它们放在可执行文件附近。
您应该注意的是,在Visual Studio 2005及更高版本中,二进制文件的清单可能会使您的生活更加困难。特别是自Visual Studio 2005 SP1以来,C++库的版本和清单也发生了变化。