5

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

有谁知道是什么原因造成的?

4

1 回答 1

4

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

典型的原因是链接具有一个或多个使用 /MD 编译的 .obj 文件的 .lib。使用 #pragma comment(lib, msvcrt.lib) 指令注入对 msvcrt.lib 的依赖项。这告诉链接器搜索 msvcrt.lib,而无需在链接器、输入、附加依赖项中明确指定它为依赖项。

于 2011-06-18T17:00:08.063 回答