IT评测·应用市场-qidao123.com

标题: 【Visual Leak Detector】源码编译 VLD 库 [打印本页]

作者: 南飓风    时间: 2023-4-24 00:51
标题: 【Visual Leak Detector】源码编译 VLD 库
说明

使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的编译。同系列文章目录可见 《内存泄漏检测工具》目录

目录


1. VLD 库的依赖文件

以 vld2.5.1 版本为例,下载源码 后,源码包中各文件的用途可看本人另一篇博客 【VLD】源码文件概览。使用 vld2.5.1-setup.exe 安装 VLD 时(可参考 【VLD】安装 VLD),安装目录结构如下:
  1. D:\Program Files (x86)\Visual Leak Detector
  2. │  AUTHORS.txt
  3. │  CHANGES.txt
  4. │  COPYING.txt
  5. │  unins000.dat
  6. │  unins000.exe
  7. │  vld.ini
  8. ├─bin
  9. │  ├─Win32
  10. │  │      dbghelp.dll
  11. │  │      Microsoft.DTfW.DHL.manifest
  12. │  │      vld_x86.dll
  13. │  │      vld_x86.pdb
  14. │  │
  15. │  └─Win64
  16. │          dbghelp.dll
  17. │          Microsoft.DTfW.DHL.manifest
  18. │          vld_x64.dll
  19. │          vld_x64.pdb
  20. ├─include
  21. │      vld.h
  22. │      vld_def.h
  23. └─lib
  24.     ├─Win32
  25.     │      vld.lib
  26.     │
  27.     └─Win64
  28.             vld.lib
复制代码
除了 unins000.dat 与 unins000.exe 外,一共 16 个文件。查看源码包中的文件 .\setup\vld-setup.iss 第 44~59 行,可知这 16 个文件的来源:
  1. [Files]
  2. Source: "dbghelp\x64\dbghelp.dll"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion
  3. Source: "dbghelp\x64\Microsoft.DTfW.DHL.manifest"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion
  4. Source: "dbghelp\x86\dbghelp.dll"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
  5. Source: "dbghelp\x86\Microsoft.DTfW.DHL.manifest"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
  6. Source: "..\src\bin\Win32\Release-v140\vld.lib"; DestDir: "{app}\lib\Win32"; Flags: ignoreversion
  7. Source: "..\src\bin\Win32\Release-v140\vld_x86.dll"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
  8. Source: "..\src\bin\Win32\Release-v140\vld_x86.pdb"; DestDir: "{app}\bin\Win32"; Flags: ignoreversion
  9. Source: "..\src\bin\x64\Release-v140\vld.lib"; DestDir: "{app}\lib\Win64"; Flags: ignoreversion
  10. Source: "..\src\bin\x64\Release-v140\vld_x64.dll"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion
  11. Source: "..\src\bin\x64\Release-v140\vld_x64.pdb"; DestDir: "{app}\bin\Win64"; Flags: ignoreversion
  12. Source: "..\src\vld.h"; DestDir: "{app}\include"; Flags: ignoreversion
  13. Source: "..\src\vld_def.h"; DestDir: "{app}\include"; Flags: ignoreversion
  14. Source: "..\vld.ini"; DestDir: "{app}"; Flags: ignoreversion
  15. Source: "..\AUTHORS.txt"; DestDir: "{app}"; Flags: ignoreversion
  16. Source: "..\CHANGES.txt"; DestDir: "{app}"; Flags: ignoreversion
  17. Source: "..\COPYING.txt"; DestDir: "{app}"; Flags: ignoreversion
复制代码
2. 源码编译生成 VLD 库

使用 Visual Studio 2015 打开源码根目录下的 vld_vs14.sln 或者 vld_vs14_wo_mfc.sln,当仅用于生成 VLD 库时,这两个解决方案的生成结果是一样的,详见本人另一篇博客 【VLD】源码文件概览。打开后,下拉构建配置框,可以看到有 6 种配置可供选择:Debug、Debug_StaticCrt、Debug_VldRelease、Debug_VldRelease_StaticCrt、Release、Release_StaticCrt,他们的区别在于链接的运行库版本不同(详见 项目属性 -> C/C++ -> 代码生成 -> 运行库),以及是否启用优化。

打开 配置管理器,下拉查看不同的 活动解决方案配置,发现除 Debug、Debug_StaticCrt 模式外,其余 4 种配置下 vld 的配置都为 Release。因此解决方案的配置选项选择除 Debug、Debug_StaticCrt 外的 4 种都可以,不妨选择 Release。

按下图步骤操作,生成 Win32 平台下的 VLD 库及 pdb 文件。

同样地,按下图步骤操作,生成 Win64 平台下的 VLD 库及 pdb 文件。

在生成目录 .\src\bin\Win32\Release-v140 下可以找到对应的 3 个文件:

同样地,在生成目录 .\src\bin\x64\Release-v140 下可以找到 Win64 平台的 3 个文件:

至此,VLD 安装目录下的 16 个文件已经全部具备,可以开始使用了。
3. 配置环境变量

由于没有使用 vld2.5.1-setup.exe 安装器,环境变量还需要自己来手动配置,将以上 16 个文件整理到一个目录下,最好依据前面的安装目录结构来进行整理,然后手动修改系统变量 Path,增加对应的 Win32 版本路径与 Win64 版本路径,例如:
  1. D:\Program Files (x86)\Visual Leak Detector\bin\Win32
  2. D:\Program Files (x86)\Visual Leak Detector\bin\Win64
复制代码
4. 使用 VLD 库

VLD 库的使用方式可参考本人同系列文章:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4