visual studio有两种模式,一种是release,一种是debug。release没有断点调试功能,但是运行速度快;debug有断点调试功能,可以查看各变量的值,但是运行速度慢。有时我们需要在两者之间进行切换,比如一开始为了速度快而使用了release版本,但是中途出现bug,需要用debug模式进行调试。这两种模式是可以在同一个工程里进行切换的,只是需要进行一些设置。将visual studio的release模式变成debug,需要修改的地方包括但不限于:
- 将调试器更换为debug
- 打开顶部菜单栏,选择
项目->属性
,打开属性页,将配置改为debug:
- 在
配置属性->VC++目录->包含目录
下,将用到的库的头文件路径都放置进去。一般这些路径和release下是一样的,所以直接复制过来就可以了。
- 同理,修改
库目录
(就在包含目录的下两个选项里),这些路径与release模式下一般也是相同的,因此直接复制过来就可以了。
- 在
链接器->输入->附加依赖项
里,更改输入的lib文件名,这些文件名的变化不同的库之间并不统一,有的加了_debug,比如pcl_common_debug.lib
;有的在中间加-gd,比如libboost_system-vc141-mt-gd-1_64.lib
;有的直接加d,比如opencv_core347d.lib
。所以需要自己去不同的库下确认命名了,不过一般同一个库的命名规则还是一样的。
- 进入
项目->C/C++->代码生成
页面,将运行库从多线程DLL
更改为多线程调试DLL
。否则会报错错误 LNK2019 无法解析的外部符号 __imp__CrtDbgReportW,该符号在函数 "void * __cdecl std::_Allocate(unsigned __int64,unsigned __int64,bool)" (?_Allocate@std@@YAPEAX_K0_N@Z) 中被引用
。
以上便是将release模式改为debug模式,反之亦然。