在Visual Studio 2015中禁用链接器警告(LNK4221,LNK4006)

时间:2017-03-30 06:30:24

标签: c++ visual-studio-2015 linker suppress-warnings

如何在Visual Studio 2015中抑制(隐藏)LNK4221,4006警告?

  

D:\ solutionFolder \ projectFolder \ OgreHlmsPbs_d.lib(OgreHlmsPbs_d.dll)1 __NULL_IMPORT_DESCRIPTOR   已经在OgreOverlay_d.lib(OgreOverlay_d.dll)中定义;第二   定义忽略LNK4006

     

D:\ solutionFolder \ projectFolder \ OgreHlmsPbs_d.lib(OgreHlmsPbs_d.dll)1   目标文件未定义任何先前未定义的公共符号,   所以任何消耗它的链接操作都不会使用它   图书馆LNK4221

程序运行良好。

我使用图书管理员(与SO问题相同:LNK4006, LNK4221 warnings when using static library that includes another static library)。

我尝试过: -

  • 链接器>所有选项>附加选项= /ignore:4221,4006
  • 链接器>命令行>附加选项= /ignore:4221,4006
  • 图书馆员>所有选项>附加选项= /ignore:4221,4006
  • 图书馆员>命令行>附加选项= /ignore:4221,4006

我已将其设置为user-project和静态库。

我还单独尝试/ignore:4221以上4种组合,它无法抑制LINK4221。
 资本/IGNORE:4221也不起作用。

以上所有内容都无法解决。还有其他组合吗?

我不想修改我的代码,例如

__declspec( dllexport ) void getRidOfLNK4221(){}    

我看过:

我猜这个版本的Visual Studio(2015)可能有不同的方法来解决这个问题。

进一步调查

发布问题后,我发现: -

我开始认为使用图书管理员可能不是一个好主意。

但是,即使我没有设置图书管理员,我仍然会收到空警MyClass.cpp的警告。
因此,这个问题可能与图书管理员无关。

  

D:\ solutionFolder \ projectFolder \ MyClass.obj 1此目标文件有   没有定义任何以前未定义的公共符号,所以它不会   由任何使用此库LNK4221的链接操作使用

0 个答案:

没有答案