VS2013 C++项目添加vld.h遇编译错误:头文件位置不符
解决VS2013中Visual Leak Detector的编译错误
我之前在VS2013里用VLD的时候也踩过这个坑!你遇到的这个编译错误,其实是因为VLD的头文件包含顺序要求和你看的文档可能有出入——vld.h必须放在所有头文件(包括预编译头)的最前面,而不是之后。
下面是具体的解决步骤:
调整头文件包含顺序
打开你加了vld.h的cpp文件,把#include "vld.h"移到文件的最顶部,也就是所有#include语句的第一个位置,哪怕是预编译头(比如stdafx.h)都要放在它后面。举个正确的例子:#include "vld.h" #include "stdafx.h" // 预编译头后置 #include <iostream> // 其他业务头文件...这么做的原因是VLD需要重定义内存分配相关的宏,这些宏必须在任何其他代码引入前生效,不然就会触发编译报错。
再次确认项目配置
虽然你已经设置了包含和库目录,但还是快速核对一遍:- 右键项目 → 属性 → 配置属性 → C/C++ → 常规 → 附加包含目录:确保填了VLD安装目录下的
include文件夹路径 - 链接器 → 常规 → 附加库目录:添加VLD的
lib文件夹路径,注意区分x86和x64版本,要和你的项目编译平台匹配 - 链接器 → 输入 → 附加依赖项:可以手动加上
vld.lib,不过部分VLD版本会通过头文件自动引入这个库,这一步可选
- 右键项目 → 属性 → 配置属性 → C/C++ → 常规 → 附加包含目录:确保填了VLD安装目录下的
检查版本兼容性
确保你用的VLD版本支持VS2013,有些新版本已经不再维护对老VS的支持了,建议选v2.5.1这类对旧VS兼容性更好的版本。
内容的提问来源于stack exchange,提问作者Stew
相关产品推荐
相关产品推荐

