Windows上使用FFmpeg和SDL2(使用 Cmake编译)

本文详细介绍了如何在Windows上配置Clion以使用CMake构建FFmpeg和SDL2结合的屏幕录制程序。首先,提供了FFmpeg、SDL2和MinGW的下载资源。接着,展示了如何编辑CMakeLists.txt文件以设置头文件和库的路径。在配置过程中,强调了需要将MinGW的bin目录添加到系统路径中以解决动态链接库问题。最后,成功编译后的程序依赖多个动态库,要在运行时一同拷贝到程序文件夹。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

1. 资源下载

FFmpeg

Download FFmpeg

image-20211216233429955

Builds - CODEX FFMPEG @ gyan.dev

image-20211216234338970

SDL2

Simple DirectMedia Layer - SDL version 2.0.18 (stable) (libsdl.org)

image-20211216234444047

MinGW

MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows 特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的 Windows程序而不需要第三方C运行时(C Runtime)库。

MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net

image-20211216234543509

2. Clion上配置cmake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)

Clion是JetBrains开发的C/C++ IDE,因为它支持cmake,而且支持跨平台开发,所以我就用它了,其他 支持cmake的IDE也是可以的。

image-20211216234632019

编辑CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
set(PROJECT_NAME screenRecorder_win)
project(${PROJECT_NAME} C)
set(CMAKE_C_STANDARD 99)
​
# 这里目录要替换成你们的电脑中安装资源的目录
# 设置引入头文件所在目录的别名
set(INC_DIR
  D:/Software/ffmpeg/include
  D:/Software/SDL2-2.0.18/x86_64-w64-mingw32/include)
# 设置要引入的库所在目录的别名
set(LINK_DIR
  D:/Software/ffmpeg/lib
  D:/Software/SDL2-2.0.18/x86_64-w64-mingw32/lib)
# 指定引入的头文件所在路径
include_directories(${INC_DIR})
# 指定引入的库文件所在路径
link_directories(${LINK_DIR})
# 构建可执行目标文件所需要的源代码文件
add_executable(recordScreen main.c)
# 指定要链接的库(-l命令)
target_link_libraries(recordScreen mingw32 SDL2main SDL2 avdevice avcodec avformat swscale avutil)

因为Windows环境中还用到了动态链接库,因此需要在配置中添加动态链接库的路径

image-20211216234748572

image-20211216234800599

path=D:\Software\ffmpeg\bin\;C:\Software\mingw64\bin\;D:\Software\SDL2-2.0.18\x86_64- w64-mingw32\bin

这里需要三个资源的bin目录,要把mingw32的bin目录也添加到路径中,我查了好多资料才发现 之前一直不成功就是因为这个动态链接库目录没有添加到路径中。

3. 编译及运行结果

编译后的程序为:screenRecorder_win.exe

可以在cmake-build-debug目录下查看到编译出的程序

该程序需要依赖以下动态库,需要在其他环境运行本程序,需要将下列动态库拷贝到程序所在文件夹。

 

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值