c++ - 为什么 MSCVRT 库会在链接时产生冲突?

标签 c++ visual-studio linker msvcrt

<分区>

我正在 Visual C++ 2008 中构建一个项目,这是一个基于 MFC 的示例应用程序,用于我很快将在我自己的项目中使用的静态 C++ 类库。在构建调试配置时,我得到以下信息:

warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library

使用推荐选项(通过将“msvcrt”添加到调试配置的项目链接器设置中的“忽略特定库”字段)后,程序链接并运行良好。但是,我想知道为什么会发生这种冲突,为什么我必须忽略一个关键库,如果我以后会遇到问题,我会添加忽略,或者如果我不这样做会发生什么(因为无论如何都会构建程序)。

同时Release配置警告:

warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library

我猜“D”后缀表示这是 vc++ 运行时的调试版本,不知道这次为什么要使用它。无论如何,将“msvcrtd”添加到忽略字段会导致大量以下形式的链接错误:

error LNK2001: unresolved external symbol __imp___CrtDbgReportW

非常感谢任何见解。

最佳答案

当您链接到使用另一个版本的 VC++ 运行时(C++ ->代码生成->运行时库 项目属性中的设置)的静态库时,通常会发生这种情况。

关于c++ - 为什么 MSCVRT 库会在链接时产生冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553397/

相关文章:

c++ - 使用 SDL 打开嵌入的 BMP 图像?

css - 与参数混合不起作用 vs

swift - ld : warning: Could not find or use auto-linked library 'swiftCore'

c++ - 如何从 C 调用用 C++ 编写的库?

c++浮点减法错误和绝对值

c++ - 关于条件运算符的面试问题

asp.net-mvc - 可浏览的网站同时受版本控制?

c++ - Valgrind 合法的 "possibly lost"字节示例

c++ - 我该如何修复此代码?

c++ - 使用 Visual Studio 将静态构建的库链接到共享库的潜在内存风险