我在visual studio 2010中生成.dll。.lib,.dll,.pdb文件正在输出文件夹中生成。
为什么.lib(它是静态的lib吗?)与dll一起发展,它有什么用处和
实际包含什么?
(在Linux中与.so一起,它不能有任何其他文件,但为什么在Windows中)。
这个.pdb文件是什么,它包含什么以及它将如何有用?
提前妥协:)
答案 0 :(得分:3)
为什么.lib(它是静态的lib吗?)与dll一起生成,它的用途是什么以及它实际包含什么?
不,.lib是一个导入库,它用于隐式链接。
这是什么.pdb文件,它包含什么以及它将如何有用?
PDB文件包含符号&行信息,调试器使用它们将十六进制/八位字节地址映射到函数名称。构建项目时会生成PDB文件。
没有PDB,您的程序堆栈跟踪将如下所示
0x00002130
使用PDB
0x00002130 yourprogram!function
答案 1 :(得分:3)
.lib
与.dll
一起不是静态库。它告诉链接器lib
中存在的函数将从dll
加载。这样,它就会产生对dll的依赖。未能找到dll将导致应用程序退出(在启动时检查)。
用于隐式链接dll。
调试器使用PDB文件来查找符号信息。