如何在不要求任何链接文件的情况下使程序正常工作

时间:2011-10-17 05:23:44

标签: c++ visual-studio

当我创建一个简单的程序时是Console还是win32当我将程序复制到其他PC或其他操作系统时给我一个错误信息,必须有特定的dll或lib文件才能运行。

示例: 我创建了一个简单的控制台程序,当它在其他Windows或其他PC上运行时,问我程序所需的文件(msvcp100d.dll,msvcr100d.dll)。

我的问题: 如何在没有任何文件链接,甚至文件库或其他文件链接的情况下在任何PC或Windows上运行该程序。

注意:我正在使用带有Windows 7的visual studio 2010 Express版。

1 个答案:

答案 0 :(得分:1)

这并不总是一个好主意,对于某些库,您可能会遇到许可问题,但您可以静态链接所有内容,而不是动态链接。

例如,对于MS C / C ++运行时库(msvcp100d.dll,msvcr100d.dll),您可以更改Visual Studio中的设置。打开项目属性,然后转到: 配置属性 - > C / C ++

将“运行时库”更改为:

Multi-threaded Debug (/MTd)  // for a Debug build, and to
Multi-threaded (/MT)         // for a Release build

然后,只需重建您的项目,它就不会再次要求这些库。 至于第三方库,你必须有一个静态版本的库(只有.lib文件,而不是动态的lib / dll对)。此外,静态库必须自己静态链接到msvcp100d.dll和msvcr100d.dll。 一旦满足所有这些条件,您只需链接这些lib文件,您的可执行文件就不会要求dll。