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

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

我正在使用 jsoncpp我的 Visual C++ 项目 (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

然后,打开 Properties => Linker => Command Line 并添加以下行以禁用该警告。

/ignore:4099

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

最佳答案

是的,库没有 PDB 是安全的 - 代码将运行良好。

但是,调试功能(包括调用堆栈)将受到损害 - 您将无法调试 jsoncpp 中的任何内容或依赖任何依赖于 jsoncpp 函数的调用堆栈。

您真的应该尝试获取 jsoncpp lib 的 PDB - 它们很可能是由它构建的,因为拥有它们确实没有任何缺点,而且它们支持调试。

关于c++ - 在 Visual Studio 2017(VC++) 的链接阶段禁用库警告是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795614/

相关文章:

c++ - 获取距离中心矩形最远的矩形

Android NDK eabi - 如何让 ndk 知道使用 hard fp?

c++ - 将未使用的动态加载库链接到 C++ 应用程序构建中的陷阱是什么(如果有的话)?

c++ - ld : library not found for -lpthread

c# - 升级 .NET 版本后,TwoWay 或 OneWayToSource 绑定(bind)无法对只读属性起作用

c# - 引用 NetStandard 项目的传统控制台应用程序会抛出 FileNotFoundException

c++ - 在复制初始化中,对复制构造函数的调用是显式的还是隐式的?

c++ - 使用c字符串从多项式c++中提取指数

c++ - 关于从 int 到 double 的隐式转换的编译器警告

visual-studio-2017 - .targets 文件在哪里,.net core 是否支持