目录
为啥要选择vscode来对ffmpeg进行编程,而不是gedit或者vim呢?因为vscode有一个文件:c_cpp_properties.json,它可以指定其他路径下的头文件,这样在使用ffmpeg的函数的时候,vscode可以对函数进行提示,加快编程速度。同时vscode自带终端控制台,可以在其中进行make和调试等操作。
一、下载vscode
Download Visual Studio Code - Mac, Linux, Windows
二、生成并配置c_cpp_properties.json
ctrl+shift+p 打开Command Palette,运行 C/C++: Edit configurations(JSON),生成c_cpp_properties.json
在 "includePath" 下增加ffmpeg的头文件路径。
"/usr/local/ffmpeg/include"
这样在输入属于ffmpeg的函数的时候,vscode就可以进行提示啦。
三、编写Makefile
使用Makefile文件进行编译程序十分方便,这里附上可以编译ffmpeg程序的Makefile。感兴趣的可以研究一下它的实现原理。
CC=gcc
#生成的可执行文件名
TARGET=log
LIB=libavcodec libavformat libavutil libavfilter libavdevice libswresample libswscale
BUILD_DIR=build
SRC_DIR=sources .
INC_DIR=includes .
#得到所有.h文件
ALL_INC=$(foreach dir, $(INC_DIR), $(wildcard $(dir)/*.h))
#在gcc命令后面加上-I
GCC_INC=$(patsubst %, -I%, $(INC_DIR))
#得到所有.c文件
ALL_SRC=$(foreach dir, $(SRC_DIR), $(wildcard $(dir)/*.c))
#先将*.c前面的目录去掉
SRC=$(notdir $(ALL_SRC))
#将*.c换成*.o文件
BUILD=$(patsubst %.c, %.o, $(SRC))
#在*.o前面加上 $(BUILD_DIR)/
OBJS=$(patsubst %, $(BUILD_DIR)/%, $(BUILD))
$(BUILD_DIR)/$(TARGET):$(OBJS)
$(CC) $^ -o $@ `pkg-config --libs --cflags $(LIB)`
$(BUILD_DIR)/%.o:%.c $(ALL_INC) | create_build
$(CC) -c $< -o $@ $(GCC_INC) `pkg-config --libs --cflags $(LIB)`
.PHONY:clean create_build
clean:
rm -r $(BUILD_DIR)
create_build:
mkdir -p $(BUILD_DIR)