Visual studio cannot find nafxcwd.pdb

Visual studio cannot find nafxcwd.pdb

本文关键字:nafxcwd pdb find cannot studio Visual      更新时间:2023-10-16

我在一个混合的FortranC++编程环境中工作。C++项目是一个静态库(XMLParser.lib),用于读取和写入XML文件。它被添加为Fortran项目的附加依赖项,Fortran项目是一个用于执行数学计算的DLL库(engine.dll)。Fortran使用CRT(LIBCMTD),C++使用MFC库。如中所述,如果未按正确顺序链接LIBCMTDNAFXCWD库,这可能会导致链接器错误。为了避免这个问题,我不得不添加nafxcwd.lib作为C++项目的附加依赖项。

一切正常,解决方案编译成功。然而,在链接这些项目时,编译器抱怨在$(OUTDIR)文件夹(创建C++静态库的输出文件夹)中找不到nafxcwd.pdb文件。为了解决这个问题,我不得不将nafxcwd.pdb从Visual Studio文件夹复制到我的输出文件夹中,这不是一个实用的选择,因为这个非常具体的指令应该与我的团队中的每个其他程序员共享。我尝试过与创建pdb文件相关的不同选项(即/Zi、/Z7和Zi),但似乎都不起作用。

2>XMLParser.lib(dumpcont.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(dumpflt.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(arccore.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(arcobj.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(arcex.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(arcstrm.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(dumpinit.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(dumpout.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(afxasert.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(afxmem.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(filecore.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(filetxt.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(filex.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(filest.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info
2>XMLParser.lib(array_b.obj) : warning LNK4099: PDB 'nafxcwd.pdb' was not found with 'd:DebugXMLParser.lib' or at 'D:Debugnafxcwd.pdb'; linking object as if no debug info

如果你能帮我解决以下问题,我将不胜感激:

  1. 为什么visual studio在输出文件夹中查找nafxcwd.pdb而不是VS文件夹
  2. 有没有任何方法可以将nafxcwd.pdb嵌入到XMLParser.obj文件中,以确保链接器总是能找到它

感谢您的帮助。

我找到了这个问题的答案。在Fortran项目中,我将nafxcwd.lib libcmtd.lib添加到其他项目依赖项中,并添加了相同的库以忽略列表。