【发布时间】:2011-11-16 13:19:23
【问题描述】:
在一个非常古老的代码库中,我们有一些用于可视化 C++ 项目设置的构建设置,这些设置令人困惑且似乎没有必要。
我们的 C++ 项目是使用 Visual Studio(目前使用 vs 2010)构建的,在链接器选项中,为“忽略特定库”链接器设置指定了一些库。其中一些库是:msvcirt.lib 和 msvcrtd.lib。
所以对于这个问题: 我一生都想不通为什么要忽略这些特定的库?
我最好的猜测是: 也许在视觉工作室的早期是必要的? ...出于某些奇怪的原因,只有放入它的人才知道。
默认情况下,使用 VS 2010 创建 C/C++ 项目(即 .vcxproj)时,不会特别忽略这些库。因此,我 99% 确信此链接器设置在 99% 的情况下都不是必需的。有人同意我的观点吗?
当我使用依赖项遍历器检查我构建的任何旧 DLL 时,我可以看到,如果我在 ADVAPI32.dll 中链接它是对 msvcrt.dll 的依赖项。但这真的不应该是我关心的......
【问题讨论】:
-
在尝试链接使用错误设置(例如 /MT 与 /MD)编译的 .obj 或 .lib 文件时避免生成链接器错误是一种常见的技巧。真正的解决办法是正确编译代码。
标签: visual-c++ linker msvcrt