N_QT

with Visual Studio

Visual Studio 下载页 本质上QT框架就是个库, Windows程序还是适合在Visual Studio 下开发.. (毕竟微软的亲儿子)

引入 QT 框架

然而VS有现成的QT集成扩展: 扩展(X) -> 搜索 Qt Visual Studio Tools .. 扩展菜单栏多出个 QT VS Tools

设置QT插件 扩展(X) -> QT VS Tools -> QT Options Version 路径 选MSVC版的QT 默认QT 工程只引入 QT Core 模块, 如果想要应用其他QT模块: 项目(P) -> 属性 -> Qt project Settings -> Qt Modules

lib 引用

  1. 添加工程的头文件目录: 项目(P) -> 属性 -> 配置属性 -> c/c++ -> 常规 -> 附加包含目录: 加上头文件存放目录;
  2. 添加文件引用的lib静态库路径: 项目(P) -> 属性 -> 配置属性 -> 链接器 -> 常规 -> 附加库目录: 加上lib文件存放目录;
  3. 然后添加工程引用的lib文件名: 项目(P) -> 属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项 要把一个个lib名加上去.. (必须带lib后缀)
avformat.lib
avcodec.lib
avdevice.lib
avfilter.lib
avutil.lib
swresample.lib
swscale.lib

内存调试

Visual Studio 教程 衡量内存使用情况

通过截取某两个不同时刻的内存快照, 进行对比, 可以快速找到泄露部分;

值得注意的指标

  • 分配差异 对比上一次快照, 分配内存次数增加 (如果分配2次, delete了1次, 计1次, 值是+1)

  • 快照对比视图

    • 类型视图 对象类型是分配的类型, 计数是分配的次数 (所以对比基准(循环)快照的计数,就能知道哪一种类型的数据分配溢出了)

    • 堆栈视图 计数同理类型视图, 可以按照分配次数排序!so 这就可以找到那个代码栈有问题了!

导出编译的 .o (目标文件)符号信息

利用MSVC编译器的 link.exe 工具可以 导出编译的 .o (目标文件)符号信息 F:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29910\bin\Hostx64\x64\link.exe

link /dump /disasm F:\VS_project\rtsp-server-64-vc\x64\Debug\main.obj >> main_dump.txt