Visual Studio Nuget和C++ PDB

a9wyjsp7  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(176)

我正在为我编译的一个静态库创建我自己的C++ nuget包(使用/Zi)。我将库的.pdb添加到nuget包中,与.lib放在一起,但我在构建应用程序时无法包含它。我收到以下链接器错误:
警告LNK 4204:“xxx\Release\vc110.pdb”缺少引用模块的调试信息;链接对象,如同没有调试信息一样
我如何指示VisualStudio,通过与nuget一起发布的.targets或.props文件,它应该在哪里找到.pdb?
显然,嵌入在.lib中的路径在我的机器上不存在。
使用/Z7编译静态库是唯一的选择吗?
谢谢

qv7cva1a

qv7cva1a1#

我们可以看出:Linker Tools Warning LNK4204
如果库中的某些对象引用不再存在的文件,则可能会发生LNK 4204。例如,在重新生成解决方案时可能会发生这种情况。由于编译错误,对象文件可能已被删除且未重新生成。在这种情况下,请使用/Z7或/Fd进行编译,以更新对象,使其引用每个库的单个文件(这不是默认的.pdb文件名)。有关详细信息,请参见/Fd(程序数据库文件名)。请确保每次在源代码管理系统中更新.pdb时都将其与库一起保存。
用/Z7或/Fd编译可以修复这个问题吗?你也可以看到这个link,希望它能帮助你。

相关问题