1. 资源下载
FFmpeg

Builds - CODEX FFMPEG @ gyan.dev

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

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

2. Clion上配置cmake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)
Clion是JetBrains开发的C/C++ IDE,因为它支持cmake,而且支持跨平台开发,所以我就用它了,其他 支持cmake的IDE也是可以的。

编辑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环境中还用到了动态链接库,因此需要在配置中添加动态链接库的路径


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

8488

被折叠的 条评论
为什么被折叠?



