Visual studio 2012 警告LNK4075当一个C++/CLI项目使用/ZI(编辑并继续)引用静态库项目
我在Visual Studio 2012解决方案中有以下项目:Visual studio 2012 警告LNK4075当一个C++/CLI项目使用/ZI(编辑并继续)引用静态库项目,visual-studio-2012,c++-cli,warnings,edit-and-continue,Visual Studio 2012,C++ Cli,Warnings,Edit And Continue,我在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
- 本机(无
)静态库项目,使用/clr
编译以供编辑和继续/ZI
- C++/CLI DLL项目,它引用上述静态库
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项目中使用“编辑并继续”,因为这不受支持。实际上,在静态库项目中将/ZI更改为/ZI(禁用编辑并继续)可以消除警告,但我不能这样做-该库的其他非CLR使用者需要使用编辑并继续
如何在不禁用静态库中的“编辑并继续”的情况下消除此警告(并且希望不为静态库的本机用户和CLR用户维护单独的生成配置)?我的意思是,有没有办法要求链接器忽略嵌入在引用的静态库中的/EDITANDCONTINUE
指令(与/NODEFAULTLIB
可以忽略/DEFAULTLIB
指令的方式大致相同)
我已经创建了一个复制所述问题的解决方案。没有其他方法可以
- 在库中禁用“编辑并继续”
- 创建一个单独的构建配置für“编辑并继续(/ZI)”和“程序数据库(/ZI)”
只要不想更改静态lib项目,就必须接受此警告。它是完全良性的。使用/Zi重新编译时,您将无法获得它。我也遇到了同样的问题,发现唯一的解决方案是删除项目的.vcxproj和.sln文件,然后再次创建项目。 但在同一个项目的一个旧副本中,我发现了一个更好的解决方案:我在projectname.vcxproj文件中更改了行 外形真实 到 剖面图错误 LNK4075警告消失。
是Visual Studio探查器造成了这些问题。我正在搜索设置,在那里我可以使用VisualStudio中的下拉菜单设置
/OPT:NOLBR
。但是,没有用于此的UI元素。您必须将此作为附加选项添加到配置属性->链接器->命令行下