配置VSCode实现可以编译调试openh264源码
1.下载openh264源码:openh264-2.5.0.tar.gz
2.创建test文件夹,将openh264的源码目录放进去。最终test项目的目录结构为:
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
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的整个编解码流程。