当前位置:网站首页>VS“无法查找或打开PDB文件”是怎么回事?如何解决
VS“无法查找或打开PDB文件”是怎么回事?如何解决
2022-08-01 09:26:00 【Love coldplay】
有时候,我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败,无法运行,如下图所示:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>v1; // 创建一个空的vector;
vector<int>v2(5); //创建元素个数为5的vector;
vector<int>v3(7, 3); //创建元素个数为7,且值均为3的vector
vector<int>v4(v3); // 复制构造函数
vector<int>v5(v3.begin(), v3.begin() + 3); //复制v3区间内的元素到v5中
// 方式1
cout << "1. v1的元素个数:" << v1.size() << endl;
cout << "2. v2的输出结果:";
for (unsigned int i = 0; i < v2.size(); i++)
{
cout << v2[i] << " ";
}
cout << endl;
}

大家不要惊慌,出现这种提示并不是代码写错了,而是编译器设置的问题,改一下设置就 OK 了。
先说一下PDB文件是什么
当程序在 VS 上编译时,程序所依赖的所有动态链接库(dll 文件)也会被编译,编译过程中每个 dll 都会产生一个pdb文件,又称为“符号文件”,是一个存储数据的信息文件,其包含 dll 库在编译过程的某些调试信息,例如程序中所用到的全局变量、局部变量、函数名以及他们的入口地址等。
pdb 文件主要用于调试程序,多用于当VS中有多个项目,且项目之间互有依赖关系时,使用pdb文件调试程序,往往会事半功倍,初学者一般不会用到。
当使用VS 调试程序时,会默认加载你的程序以及程序依赖的dll库产生的所有pdb文件,但是结果往往是VS自己找不到依赖库的pdb文件,于是就提示给你“无法查找或打开pdb文件”。
如何修复这个错误
我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS 操作步骤也一样)。
1) 选择菜单栏中的“调试 --> 选项”,如下图所示:

2) 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:

3) 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录即可:

4) 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了,如下图所示:

如上图所示,由于pdb文件,又名“符号文件”,所以“已加载符号”,也就是成功加载了动态链接库对应的pdb文件。
边栏推荐
- 优炫数据库支持Oracle哪几种时间及日期类型
- Change Servlet project to SSM project
- Shell:条件测试操作
- 将aof文件转换为命令waoffle安装和使用
- HoloView 在 jyputer lab/notebook 不显示总结
- TiDB的真实数据库数据是存在kv和还是pd上?
- 安装GBase 8c数据库的时候,报错显示“Resource,如何解决?
- [Dataset] Dataset summary of various insulators, bird's nests and anti-vibration hammers
- leetcode-6132: Make all elements in array equal to zero
- ACmix 论文精读,并解析其模型结构
猜你喜欢

【STM32】入门(一):环境搭建、编译、下载、运行

Shell:条件测试操作
![[Tear AHB-APB Bridge by hand]~ Why aren't the lower two bits of the AHB address bus used to represent the address?](/img/fb/c95c5857024db001638cd484c5e78f.png)
[Tear AHB-APB Bridge by hand]~ Why aren't the lower two bits of the AHB address bus used to represent the address?

SAP ABAP ALV+SMARTFORS 表分页 报表打印程序

leetcode-6134: Find the closest node to the given two nodes

SaaS安全认证综合指南

【数据集】各类绝缘子、鸟巢及防震锤数据集汇总

最新的Cesium和Three的整合方法(附完整代码)

How to get page data

codeforces每日5题(均1600)-第二十七天
随机推荐
BGP综合实验
How to query database configuration parameters in GBase 8c, such as datestyle
在GBase 8c数据库后台,使用什么样的命令来对gtm、dn节点进行主备切换的操作
消息队列面试题(2022最新整理)
PerViT: 神经网络也能像人类利用外围视觉一样观察图像!
Manual upgrade and optimization tutorial of Lsky Pro Enterprise Edition
基于MySql,Redis,Mq,ES的高可用方案解析
实验。。。。
node 格式化时间的传统做法与高级做法(moment)
网络基础学习
Explain / Desc execution plan analysis
用OpenCV的边缘检测
Explain / Desc 执行计划分析
A problem with writing to the database after PHP gets the timestamp
js中如何实现深拷贝?
解析MySQL数据库:“SQL优化”与“索引优化”
leetcode 42. 接雨水
【Unity3D】相机
自定义IP在PCIE中使用
Custom IP used in PCIE