配置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的整个编解码流程。

 

posted @ 2025-08-16 13:57  飞翔天空energy  阅读(38)  评论(0)    收藏  举报