在Visual Studio 2017(VC ++)的链接阶段禁用库警告是否安全?

时间:2018-04-12 11:41:07

标签: c++ linker visual-studio-2017 compiler-warnings jsoncpp

我在Visual C ++项目中使用jsoncpp库(Visual Studio 2017)。当我构建我的项目时,我收到了警告。

1>jsoncpp.lib(json_reader.obj) : warning LNK4099: PDB 'jsoncpp_lib_static.pdb' was not found with 'jsoncpp.lib(json_reader.obj)' or at 'D:\Project\Debug\jsoncpp_lib_static.pdb'; linking object as if no debug info
1>jsoncpp.lib(json_value.obj) : warning LNK4099: PDB 'jsoncpp_lib_static.pdb' was not found with 'jsoncpp.lib(json_value.obj)' or at 'D:\Project\Debug\jsoncpp_lib_static.pdb'; linking object as if no debug info
1>jsoncpp.lib(json_writer.obj) : warning LNK4099: PDB 'jsoncpp_lib_static.pdb' was not found with 'jsoncpp.lib(json_writer.obj)' or at 'D:\Project\Debug\jsoncpp_lib_static.pdb'; linking object as if no debug info

然后,打开属性=>链接器=>命令行并添加以下行以禁用该警告。

/ignore:4099

那么,禁用链接器警告是否安全?

1 个答案:

答案 0 :(得分:1)

是的,对于库没有PDB是安全的 - 代码运行正常。

然而,调试功能(包括callstacks)将受到损害 - 您将无法在jsoncpp中调试任何内容或依赖任何依赖于jsoncpp函数的callstack。

你应该真的尝试获取jsoncpp lib的PDB - 它们可能是由它构建的,因为它们确实没有缺点,它们可以启用调试。