huyutian

他强由他强,清风拂山岗;他横由他横,明月照大江。他自狠来他自恶,我自一口真气足

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  20 随笔 :: 47 文章 :: 22 评论 :: 0 Trackbacks
以前用visual studio 2008时也碰到过类似问题,问题产生的原因就是由于一个Solution下单多个Project是分开编译的,主项目和子项目的pdb文件名相同(默认都是vc90.pdb或vc100.pdb)从而造成冲突。这个问题对程序的执行不会产生影响,但会导致丢失部分调试信息。
在网上搜到解决办法,修改pdb文件设置的路径和名称。转贴于此。

Project Configuration Properties -> C/C++ -> Output Files
Program Database File

This name, e.g. $(IntDir)\vc90.pdb, is embedded into the object file and it should be the same as the one in

Project Configuration Properties -> Linker -> Debugging
Generate Program Database File

This is, e.g. $(TargetDir)$(TargetName).pdb

Now the object file contain the path where the library is located, too.


由此引出一个话题,那就是对于分开编译的多个Project组成的一个复杂的Solution如何组织目录文档结构,既保持各个Project相对独立,同时又保证整个Solution调试信息的完整性。我的解决办法是:首先肯定要像上面一样修改各单独Project的pdb的路径和文件名。其次在复制Project编译结果到Solution的Lib时,要把所有的obj文件和pdb文件一起copy过来。要注意单独的Project编译的obj文件和pdb文件路径最好相同,而且使用相对路径"..\"和“.\"打头。文件复制工作可以写成一个批处理,放入主Solution的Pre-Build Event中去。

posted on 2012-10-06 23:27 胡雨田 阅读(21996) 评论(2)  编辑 收藏 引用

评论

# re: 解决visual studio 2010下warning LNK4099: PDB 'vc100.pdb' was not found问题 2012-10-11 11:02 喜乐
博主你好,看完你的这篇日志,大致知道了什么意思。但是具体解决的时候能详细一点说明嘛,我是刚学的小菜鸟,有些东西不太懂,希望博主不吝赐教~大谢  回复  更多评论
  

# re: 解决visual studio 2010下warning LNK4099: PDB 'vc100.pdb' was not found问题 2013-10-08 09:40 Edwin Liu
解决方案:在工程属性页 配置 release 平台 活动(win32)设置:
配置属性 -> 链接器 -> 调试 -> 生成调试信息 -> 否
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理