为什么即使设置/ MT选项,我也会看到MSVCR90依赖?

时间:2011-06-18 15:31:48

标签: c visual-c++ visual-c++-2008

我正在Visual C ++ 2008中构建一个DLL,我希望将运行时静态链接到DLL中。所以我进入项目选项并将运行时库设置为Multi-threaded (/MT)。这在过去一直适用于其他项目。但是当我构建这个时,我仍然最终得到了Dependency Walker在列表中显示MSVCR90.dll。

任何人都知道会导致什么原因吗?

1 个答案:

答案 0 :(得分:4)

项目+属性,链接器,命令行。添加/ verbose选项。构建+重建。 “输出”窗口显示链接器搜索符号。注意msvcrt.lib,这是引入msvcr90.dll依赖的那个

典型的原因是链接.lib,该.lib包含一个或多个使用/ MD编译的.obj文件。对msvcrt.lib的依赖注入了#pragma comment(lib,msvcrt.lib)指令。这告诉链接器搜索msvcrt.lib而不将其显式指定为链接器,输入,附加依赖项中的依赖项。