warning LNK4099: 未找到 PDB“vc120.pdb”(使用“dataserialize.lib(Data_processor.obj)”或在“E:\Santint\Santint_B
举例: “warning LNK4099: 未找到 PDB“vc120.pdb”(使用“sqlite3d.lib(sqlite3secure.obj)”或在“D:\test\Debug\vc120.pdb”中寻找);正在链接对象,如同没有调试信息一样”。
使用VC时链接了第三方静态库, 并且第三方静态库(一般是开源的三方库)是在一个solution下的多个project, 当然, 网上基本都是这么回答的, 其实本质原因是因为这些开源库一般都会通过各种方式修改solution和project的默认路径把二进制生成到同一个目录下, 比如lib, 而我们自己平时简单的静态库工程是不怎么修改默认工程配置的.
由于每个开源库的作者有自己的工程组织方式, 但导致LNK4099的最终原因无非是PDB路径问题
解决方案
a. 如果确认不需要PDB, 即不需要调试开源库, 完全可以在设置里将/Zi或/ZI去掉, 这样即能消除warning也能提升开源库编译速度
b. 如果需要调试开源库, 方法也不复杂
b.1. 将开源库project里的C/C++->General->Debug Information Format 设置为Zi或ZI(两者区别请自行google, Zi就够用了, 只是高版本的VS默认都是ZI)
b.2. 然后在C/C++->Output Files->Pragram Database File Name 设置为(OutDir)(OutDir)(TargetName).pdb, (有些2B开源库这里设置的跟VS默认的是一样的比如(IntDir)vc(IntDir)vc(PlatformToolsetVersion).pdb, 但把IntDir改成了同一个目录, 每个project生成出来的pdb名字路径都是一致的, 当然就会出问题), 这里需要注意的是, 一定要确保(OutDir)(OutDir)(TargetName)是有意义的, 个别开源库完全不用vs自带的宏, 甚至个别开源库需要configure之后才生产vc project, 甚至是绝对路径, 但你所要确保的是, 目录必须跟生成的.lib是同一个, 文件名(不包括扩展名)必须是和生成的xxx.lib的xxx是一致的. 之后你要做的就是把每个project的debug&release都按照如上改好再编译就ok了。
解决方案:在工程属性页 配置 release 平台 活动(win32)设置: 配置属性 ; 链接器 ; 调试 ; 生成调试信息 ; 否
转载:https://blog.csdn.net/starytx/article/details/70053194
warning LNK4099: 未找到 PDB“vc120.pdb”(使用“dataserialize.lib(Data_processor.obj)”或在“E:\Santint\Santint_B相关推荐
- warning LNK4099: 未找到 PDB“vc120.pdb”
使用vs2013建立一个solution,下面两个project.一个静态库,一个可执行程序.静态库生成的.lib要给可执行程序使用. 编译时,出现warning LNK4099: 未找到 PD ...
- VS warning LNK4099:未找到 PDB 的解决方案
举例: "warning LNK4099: 未找到 PDB"vc120.pdb"(使用"sqlite3d.lib(sqlite3secure.obj)" ...
- 解决 Debug编译时,警告:warning LNK4099: 未找到 PDB“vc90.pdb”
警告:warning LNK4099: 未找到 PDB"vc90.pdb" 当多个Project是分开编译的,主项目和子项目的pdb文件名相同(默认都是vc90.pdb或vc100 ...
- 怎样解决warning LNK4099: 未找到 PDB“vc100.pdb” 造成的链接 时间过长
转自 http://blog.csdn.net/vchelpdoc/article/details/12873161 错误原因: 人为删除了vc100.pdb文件.一般这个文件生成在debug下 解决 ...
- vs2013 Warning 44 warning LNK4099: PDB 'vc120.pdb' was not found with '
Warning 20 warning LNK4099: PDB 'vc120.pdb' was not found with 'ABC.lib(XYZ.obj)' or at 'E:\test\Rel ...
- 去掉 VC2017里输出:warning LNK4099
当你使用一些库,但没有必要调试它时,总会输出一些烦人的信息,如下: >libhpdfD.lib(hpdf_annotation.obj) : warning LNK4099: 未找到 PDB&q ...
- warning LNK4099: PDB 原因及解决方案
warning LNK4099: PDB 原因及解决方案 参考文章: (1)warning LNK4099: PDB 原因及解决方案 (2)https://www.cnblogs.com/fqucuo ...
- 未加载 ntdll.pdb的可能错误原因
未加载 ntdll.pdb的可能错误原因 原因一: 程序中的指针指向越界. 解决方案: 取消指针对非法地址的指向. 原因二: 试图对非 new 申请的内存用 delete 进行释放,只有用new申请的 ...
- 解决 Cocos2d-x 3.2 error C1041: 无法打开程序数据库vc120.pdb
Cocos2d-x 3.2最高支持的VS版本为2012,我在VS2013上编译新建立的项目遇到错误: 错误 1 error C1041: 无法打开程序数据库"x:\cocos2d-x-3.2 ...
最新文章
- Linux 性能监控常用命令
- ganglia metric 默认监控项翻译
- 特殊命令eval的用法两例
- Windows下oracle RMAN备份脚本
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- mtk pwmlinux timer
- java长时间_什么导致Java中长时间的旋转和同步时间?
- How can I force Python's file.write() to use the same newline format in Windows as in Linux (“\r\n”
- 辞职在家全职炒股需要什么条件?
- android gradle abi mips x86,APP_ABI := armeabi armeabi-v7a mips x86与= armeabi armeabi-v7a区别是?...
- xp系统怎么添加ntp服务器,1 Windows xp NTP服务器的配置
- 微信聊天记录生成词云图
- 金融、银行业务了解(自我盲点整理)
- html ios 视频播放不了,html中的video标签在ios微信中无法播放的解决方法之一
- xp打开html页面不正常,XP系统网页提示“已完毕 但网页上有错误”怎么办?
- inversion 矩阵_inversion是什么意思_inversion怎么读_inversion翻译_用法_发音_词组_同反义词_倒置-新东方在线英语词典...
- 单片机(STC12C5A60S2)内部PWM实现呼吸灯
- 共享单车靠什么赚钱?
- 【STM32】STM32之SWD
- java 抽象类 Shape