LNK4075:由于'/ OPT:ICF'规范而忽略'/ EDITANDCONTINUE'

时间:2009-10-15 19:02:41

标签: c++ visual-studio dll linker linker-warning

我最近转换了一个多项目Visual Studio解决方案,为每个项目使用.dlls而不是.libs。但是,我现在获得了每个项目的链接器警告,如示例中所述。 MSDN并没有对此有所帮助。为什么这样,我该如何解决?

  

警告2警告LNK4075:忽略   由于'/ OPT:ICF''/ EDITANDCONTINUE'   规范LudoCamera.obj

7 个答案:

答案 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)

如果您不小心在发布版本中添加了调试目录,也可能会收到此错误。检查链接器->常规->附加库目录。为我工作。