如何cmakelist里自动检测ffmpeg开发库并自动安装
时间: 2024-05-14 17:13:00 浏览: 249
ffmpeg自动化安装脚本
在CMakeLists.txt文件中,你可以使用find_package命令来查找并链接FFmpeg库。如果FFmpeg库没有安装,你可以使用ExternalProject_Add命令来自动下载并编译安装FFmpeg库。
以下是一个示例CMakeLists.txt文件,用于查找并链接FFmpeg库,或者自动下载并编译安装FFmpeg库:
```
cmake_minimum_required(VERSION 3.0)
project(myproject)
# 查找并链接FFmpeg库
find_package(FFmpeg REQUIRED)
# 如果FFmpeg库未安装,自动下载并编译安装FFmpeg库
if(NOT FFmpeg_FOUND)
include(ExternalProject)
ExternalProject_Add(FFmpeg
GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg.git
GIT_TAG master
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg
CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/src/FFmpeg/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/install
BUILD_COMMAND make
INSTALL_COMMAND make install
BUILD_IN_SOURCE 1
)
# 设置FFmpeg库的路径
set(FFmpeg_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/install/include)
set(FFmpeg_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/install/lib/libavformat.a ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/install/lib/libavcodec.a ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/install/lib/libavutil.a)
set(FFmpeg_FOUND TRUE)
endif()
# 在你的项目中使用FFmpeg库
add_executable(myproject main.cpp)
target_include_directories(myproject PRIVATE ${FFmpeg_INCLUDE_DIRS})
target_link_libraries(myproject PRIVATE ${FFmpeg_LIBRARIES})
```
在这个示例中,如果FFmpeg库未安装,ExternalProject_Add命令将自动从GitHub下载FFmpeg源代码,并在CMake生成的构建目录中编译和安装FFmpeg库。在安装成功后,FFmpeg_INCLUDE_DIRS和FFmpeg_LIBRARIES将被设置为FFmpeg库的路径,并且FFmpeg_FOUND将被设置为TRUE。最后,你可以在你的项目中使用FFmpeg库,通过将FFmpeg_INCLUDE_DIRS添加到你的项目的include路径中,并将FFmpeg_LIBRARIES添加到你的项目的链接库中。
阅读全文