我在 Visual Studio 2012 解决方案中有以下项目:
- 本机(无
/clr
)静态库项目,/ZI
用于编辑并继续编译。 - C++/CLI DLL 项目,它引用了上面的静态库。
C++/CLI 项目生成时出现以下警告:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification
如果 /OPT:NOLBR 添加到 C++/CLI 项目的链接器选项中,则警告变为:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
任何更改 C++/CLI 项目的增量链接设置的尝试都不会更改警告(C++/CLI 项目永远不会增量链接)。
我了解我将无法在 C++/CLI 项目中使用 Edit And Continue,因为这不受支持。实际上,在静态库项目中将 /ZI 更改为 /Zi(禁用编辑并继续)消除了警告,但我不能这样做 - 该库的其他非 CLR 使用者需要使用编辑并继续。
如何在不禁用静态库中的编辑并继续的情况下摆脱此警告(希望不为静态库的本机和 CLR 用户维护单独的构建配置)?我的意思是,有没有办法让链接器忽略/EDITANDCONTINUE
嵌入在引用的静态库中的指令(与/NODEFAULTLIB
可以忽略/DEFAULTLIB
指令的方式大致相同)?
我创建了一个最小的 VS 解决方案来重现所描述的问题。