FFmpeg导入到Clion(MacOS)

首发地址,会更错

如何编译FFmpeg后,本章也是基于前面来讲解如何把编译后的库文件移入到Clion。

在编译ffmpeg前,有一点需要提前说明的,Mac系统并不支持链接静态库,详细请看初步认识c/c++编译这篇文章。针对于平台的差异性,CLion工具在Mac系统中使用CMakelist.txt进行交叉编译并不友好,我试过集成Android平台的ffmpeg,最终以失败而告终,主要报错原因是:无法指向NDK中的 ld 链接器(要是哪位朋友尝试编译通过还望告知)。所以后续如果是Android项目还是老老实实使用Android Studio吧。

编译MacOS平台的FFmpeg动态库

在ffmpeg项目根目录编写build.sh脚本文件如下:

#!/bin/bash

make clean
function build_macosx() {
  ./configure \
    --prefix=$PREFIX \
    --disable-programs \
    --target-os=darwin \
    --disable-static \
    --pkg-config=$(which pkg-config) \
    --enable-shared || exit 0

  make clean
  make install
}

PREFIX=$(pwd)/macox
build_macosx

然后在控制台上执行编译脚本./build.sh,建议使用IDE,如我使用CLion导入ffmpeg源码就行操作如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DlINmXmU-1610869079409)(04_import_ffmpeg/import-source.jpg)]

等待编译成功后,会在当前目录的macox文件夹生成动态库,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqHWLZlG-1610869079417)(04_import_ffmpeg/import-build-success.jpg)]

将生成的库导入到Clion

(1)在Clion新建C++项目,项目名称为VAFFmpeg
(2)将生成的includelib复制到项目跟目录。如图下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfPrEanm-1610869079418)(04_import_ffmpeg/import-cmake.jpg)]

(3)编写CMakeLists.txt文件,分别引入刚刚复制过来的头文件和动态库,如下:

cmake_minimum_required(VERSION 3.17)
project(VAFFmpeg)

set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)

link_directories(./lib/)
include_directories(./include/)

add_executable(VAFFmpeg ${SOURCE_FILES})

target_link_libraries(
        VAFFmpeg
        avcodec
        avdevice
        avfilter
        avformat
)

进行验证

编写main.cpp文件如下:

#include <iostream>

extern "C" {
#include<libavdevice/avdevice.h>
}

using namespace std;

int main() {
    cout << "avdevice_license-->" << avdevice_license() << endl;
    cout << "avcodec_configuration-->" << avcodec_configuration() << endl;
    return 0;
}

执行能正常输出,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oS06ED4P-1610869079421)(04_import_ffmpeg/import-main-source.jpg)]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值