我最近转换了一个多项目Visual Studio解决方案,为每个项目使用.dlls而不是.libs。但是,我现在获得了每个项目的链接器警告,如示例中所述。 MSDN并没有对此有所帮助。为什么这样,我该如何解决?
警告2警告LNK4075:忽略 由于'/ OPT:ICF''/ EDITANDCONTINUE' 规范LudoCamera.obj
答案 0 :(得分:37)
您可以拥有“编辑并继续”支持或优化。通常,您将“编辑并继续”放在调试版本上,并对发布版本进行优化。
编辑并继续允许您在调试时更改代码并保持程序运行。如果代码也必须进行优化,则不支持它。
答案 1 :(得分:16)
我也有这个问题。我打开了Project Properties,然后在C / C ++选项卡中单击General。 有一个选项说“调试信息格式”,我改为程序数据库(/ Zi),我没有得到警告了。
答案 2 :(得分:6)
将VS2008项目从.lib转换为.dll时,我也收到此警告,解决方法是将Debug Win32配置中的Linker / Optimization设置从Default更改为:
引用=保留未引用的数据(/ OPT:NOREF)
启用COMDAT折叠=不删除冗余COMDAT(/ OPT:NOICF)
答案 3 :(得分:0)
我知道它是什么,它们不是发行版本。我认为链接器仍然认为它们是调试版本,在调试仍然打开时仍然使用调试编辑和继续功能。
鲍勃。
答案 4 :(得分:0)
你应该设置两个项目'调试信息格式'作为'程序数据库(/ Zi)'。例如。如果警告是:
警告LNK4075:忽略' / EDITANDCONTINUE'由于' / OPT:ICF'规范D:\ mypath \ project1 \ project1.obj project2
然后在两个项目1和项目的属性。将它们设置为:
项目属性 - >配置属性 - > C / C ++ - > General->调试信息格式,将其设置为'Program Database(/ Zi)';
答案 5 :(得分:0)
我们必须在项目属性的“链接器”->“调试”窗格下将“生成调试信息”设置为“是(/ DEBUG)”。不确定一开始是如何没有为调试版本设置的,或者为什么不是默认值,但是您就可以了。 (如果相关,请使用VS2010。)
答案 6 :(得分:0)
如果您不小心在发布版本中添加了调试目录,也可能会收到此错误。检查链接器->常规->附加库目录。为我工作。