构建C ++项目以包含所有msvc dll

时间:2011-09-20 15:27:55

标签: c++ visual-studio-2010

我有一个简单的C ++程序。我想构建exe并将其交给另一个完整的非开发盒上的人。有没有办法在Visual Studio中构建这样一个简单的单源文件而不需要所有的 crap ?我已经将程序更改为以MT模式编译,而不是静态链接msvcr.dll文件的MTD,但现在它正在查找msvcp.dll文件。我怎么编译,以便我的可执行文件1)不包括所有这些垃圾或2)静态链接它所有,以便我有一个文件转移到另一台Windows PC运行

由于

2 个答案:

答案 0 :(得分:2)

如果使用/ MT进行编译需要msvcr100.dll,则应用程序中包含的内容可能会尝试与其链接,可能是第三方组件。我会检查任何第三方图书馆和相关的。

MSVCP100.DLL是C ++标准库。您可能需要仔细检查它是否正在查找MSVCP100D.DLL,这是调试版本;混合版本和调试模式库可能会导致这种情况。

答案 1 :(得分:1)

MSVCRT100.DLL是C运行时库,MSVCP100.DLL是C ++标准库。如果使用/ MT构建,两者都应该消失,在这种情况下,应该使用这些库的静态版本。

我的猜测是,您在切换到/ MT后未完全重建应用程序,或者项目中的一个或多个文件具有包含/ MD的自定义设置。您可能希望在显示/ MT的页面上打开属性对话框,然后逐个单击所有源文件以验证它们是否仍显示/ MD。