我正在使用VS2008创建应用程序的调试版本。编译后,当我尝试运行应用程序时,会得到著名的'MSVCR90.dll缺失‘错误。
最初,我试图将MSVCR90.dll从winsxs文件夹复制到应用程序文件夹中,但我得到了另一个著名的错误:“应用程序试图错误加载C运行时库”
最后,我试图检查应用程序的依赖性,结果发现了一些奇怪的东西。有两个MSVCR90库作为应用程序的依赖项-- msvcr90d.dll和msvcr90.dll。我不知道这个库的非调试版本是如何进入我的应用程序的。
我做错什么了。提前谢谢。
这是一张照片:

发布于 2016-08-24 05:48:13
我找到答案了!
我使用/VERBOSE:LIB链接器标志来查找链接的哪一部分将MSVCR90.dll( application )库添加到我的应用程序中。
之后,使用/NODEFAULTLIB:MSVCRT.lib链接器标志到libs/exe,以避免库的MSVCRT.lib(版本)版本,并在链接期间强制执行“无冲突”。这将避免在可执行文件/库中使用MSVCRT的两个版本的库引用。
注意:如果希望在应用程序中避免MSVCRT的调试版本,则可以使用/NODEFAULTLIB:MSVCRTD.lib。
https://stackoverflow.com/questions/39094220
复制相似问题