四、Clion搭建FFmpeg开发环境

[TOC]

开始前的BB

终于要开始写东西了呢


image

开始之前我们先把环境配置好,为了兼容不同平台的大佬能有相同的体验,所以用Clion做为IDE,话不多说,开搞

image

工程的建立

首先我们用Clion创建一个C++11的工程,然后在根目录下简历以下几个文件夹

image
include          //存放引用的头文件
librarys         //存放所依赖的库文件
src              //存放代码
video            //存放测试视频

然后我们去下载的shared库的bin里

image

把dylib放入librarys/

然后去下载解压后的dev包里,将所有的头文件,copy到include里,如果现在一步步照着做的话,那么项目的结构是这样的

image

现在 我们来编写Cmake(Cmake的语法抽空写个博客来讲,这里暂时就不讲了,不懂的同学告诉你个好消息,本专栏已经和百度达成了合作☺️)

cmake_minimum_required(VERSION 3.13)
project(LearnFFmpeg)

set(CMAKE_CXX_STANDARD 11)

set(SRC_DIR ./)

include_directories(include/)
link_directories(librarys/ffmpeg/)

set(SOURCE_FILES

        main.cpp
        )


add_executable(LearnFFmpeg

        ${SOURCE_FILES})

target_link_libraries(
        LearnFFmpeg

        avformat.58
        avcodec.58
        avdevice.58
        avfilter.7
        avutil.56
        postproc.55
        swresample.3
        swscale.5
)


main.cpp

//
// Created by MirsFang on 2019-03-12.
//
#include <iostream>

extern "C"{
#include <libavformat/avformat.h>
}

using namespace std;
int main(){

    int version =avformat_version();
    cout<<"version:"<<version<<endl;

    return 0;
}

点击运行

image

如果看见

image

表明环境已经搭建成功

可能会遇见的错误

image

这个说明你的动态库没有找到,一般来讲去看Cmake里面的link_directories是否设置正确,本文的是link_directories(librarys/),对应根目录librarys/

  • symbol(s) not found for architecture x86_64
image

这个错误,大概率是直接这样include

image

这个问题是缺少了extern "C" ,他的作用的主要作用就是为了能够正确实现C++代码调用其他C语言代码(主要原因是因为C++支持函数重载,而C语言并不支持函数重载)所以把 extern "C" 加上

image

下一步我们就开始简单的写一点实用的东西

未完持续。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容