【发布时间】:2014-03-24 19:41:09
【问题描述】:
我在 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,因为它不受支持。实际上,在静态 lib 项目中将 /ZI 更改为 /Zi(禁用 Edit And Continue)可以消除警告,但我不能这样做 - 该 lib 的其他非 CLR 使用者需要使用 Edit And Continue。
如何在不禁用静态库中的“编辑并继续”的情况下消除此警告(并且希望不为静态库的本机和 CLR 用户维护单独的构建配置)?我的意思是,有没有办法让链接器忽略嵌入在引用的静态库中的/EDITANDCONTINUE 指令(与/NODEFAULTLIB 可以忽略/DEFAULTLIB 指令的方式非常相似)?
我创建了一个minimal VS solution 来重现所描述的问题。
【问题讨论】:
标签: visual-studio-2012 c++-cli warnings edit-and-continue