标签: runpath

使用 CMAKE 和 RPATH 捆绑 FFMPEG

正如标题所解释的,我正在尝试将 FFMPEG 与我的可执行应用程序捆绑在一起。

但是,我似乎无法弄清楚 FFMPEG 共享库的运行时加载。我不确定什么是不正确的:

  • RPATH/RUNPATH主要项目和 FFMPEG 库。
  • CMake 安装步骤。
  • 或者只是我的整个方法(最有可能)。

这是一个 CMake 项目,希望最终找到一个“标准解决方案”,我将包含重现此问题所需的所有内容。

CMakeLists.txt

cmake_minimum_required(VERSION 3.21) # Required for the install(RUNTIME_DEPENDENCY_SET...) subcommand
project(cmake-demo LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)

set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

# Setup CMAKE_PREFIX_PATH for `find_package`
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR}/vendor/install)
find_package(PkgConfig REQUIRED)
pkg_check_modules(ffmpeg REQUIRED IMPORTED_TARGET libavdevice libavfilter libavformat libavcodec
    libswresample libswscale libavutil)

# Setup variable representing the vendor install directory
set(VENDOR_PATH ${CMAKE_CURRENT_LIST_DIR}/vendor/install)
# Set RPATH to the dependency install tree
set(CMAKE_INSTALL_RPATH …
Run Code Online (Sandbox Code Playgroud)

c++ ffmpeg rpath cmake runpath

3
推荐指数
1
解决办法
1263
查看次数

标签 统计

c++ ×1

cmake ×1

ffmpeg ×1

rpath ×1

runpath ×1