当前位置: 首页 > news >正文

配置VSCode实现可以编译调试openh264源码

1.下载openh264源码:openh264-2.5.0.tar.gz

2.创建test文件夹,将openh264的源码目录放进去。最终test项目的目录结构为:

image

3.新建main.cpp,可以编写对openh264的测试代码。

4.创建makefile,实现编译test项目和ophn264源码。makefile设置如下:

THIRDPARTY_DIR := openh264
CXX := g++
CXXFLAGS := -std=c++11 -Wall -Wextra -g -I$(THIRDPARTY_DIR)/codec/api
TARGET := main
OUTDIR := release
THIRDPARTY_SO := $(wildcard $(THIRDPARTY_DIR)/*.so)# 默认目标:先编译第三方库,复制.so文件,再编译主程序
all: openh264 copy_so $(OUTDIR)/$(TARGET)# 编译主程序
$(OUTDIR)/$(TARGET): main.cpp@mkdir -p $(OUTDIR)$(CXX) $(CXXFLAGS) -o $@ $<  -L$(OUTDIR) -lpthread -lopenh264# 递归编译第三方库
openh264:$(MAKE) -C $(THIRDPARTY_DIR)# 复制.so文件到release目录
copy_so: openh264@mkdir -p $(OUTDIR)cp $(THIRDPARTY_DIR)/*.so* $(OUTDIR)/;# 清理:先清理主程序,再清理第三方库
clean:rm -rf $(OUTDIR)$(MAKE) -C $(THIRDPARTY_DIR) clean.PHONY: all clean openh264 copy_so

5.在test目录下执行make,即可实现对openh264和main.cpp的编译。并将libopenh264.so和main可执行程序放置在release目录下。

6.为了便于对openh264源码进行debug断点调试。需要修改openh264文件夹下的makefile,将编译类型由release改为debug

image

7.开始设置vscode的配置项。创建.vscode文件夹

8.创建编译配置task.jsom。内容如下:

{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "make","args": [],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]}]
}

9.创建C++属性配置c_cpp_properties.json。内容如下:

{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","${workspaceFolder}/openh264/codec/api/**"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "c11","cppStandard": "gnu++14","intelliSenseMode": "linux-gcc-x64"}],"version": 4
}

10.创建调试配置launch.json。内容如下:

{"version": "0.2.0","configurations": [{"type": "cppdbg","request": "launch","name": "Debug", "program": "${workspaceFolder}/release/main",  "args": [], "cwd": "${workspaceFolder}","stopAtEntry": false,"externalConsole": false,"environment": [{"name": "LD_LIBRARY_PATH","value": "${LD_LIBRARY_PATH}:${workspaceFolder}/release"}],"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build","miDebuggerPath": "/usr/bin/gdb"}]
}

11.至此VSCode配置完毕,就可以使用F5进行愉快的编译和调试了。

12.可以在openh264源码中打断点,通过在main.cpp中写编解码的测试代码。一步步的探究h264的整个编解码流程。

 

http://www.sczhlp.com/news/13114/

相关文章:

  • 题解:AT_agc030_f [AGC030F] Permutation and Minimum
  • 学习随笔:ORACLE:优化器缺陷
  • CommunityToolkit.Mvvm的使用-ObservableProperty 特性
  • 读书笔记:揭秘Oracle重做日志:为什么它如此重要?
  • 关闭 PCDN 主要通过 设置、服务、注册表、组策略、PowerShell 等方法来实现。你可以根据自己的需求和系统版本选择合适的方案。
  • 故障恢复:ORA-01100 数据文件丢失,无备份,有创建数据文件以后的所有归档的恢复
  • redis下载启动
  • 【NAOI】QuiQ
  • 牛客多校10 E题
  • 详细介绍:css 属性@font-face介绍
  • 8.16每周总结
  • 测评组人员组成、技术要求架构
  • 信息学奥赛一本通1329细胞
  • 事倍功半是蠢蛋42 linux触发读写异常
  • 实用指南:如何解决WordPress数据库表损坏导致的错误
  • 阿里云大模型服务平台(百炼)的API调用
  • 事倍功半是蠢蛋38 切进去linux
  • 1111
  • 智慧农业(GIS技术)
  • 事倍功半是蠢蛋41 数据库备份
  • Protobuf
  • Ocean base初使用
  • 通过网线让两台电脑实现互传文件而不共享网络
  • 事倍功半是蠢蛋40 postgresql/mysql 解决单个字符的转义问题
  • 芯海集成SmartAnalog模块和24位ADC的MCU CS32A010、CS32A011
  • macOS/iOS字体解析漏洞分析:CFF2混合操作码导致越界访问
  • pyyzDay12
  • Python:如何在Pycharm中显示geemap地图?
  • Qinglong部署使用 - Leonardo
  • 题解:AT_agc035_e [AGC035E] Develop