[TOC]ios
终于要开始写东西了呢 bash
首先咱们用Clion建立一个C++11的工程,而后在根目录下简历如下几个文件夹ide
include //存放引用的头文件
librarys //存放所依赖的库文件
src //存放代码
video //存放测试视频
复制代码
而后咱们去下载的shared库的bin里函数
librarys/
下
而后去下载解压后的dev包里,将全部的头文件,copy到include里,若是如今一步步照着作的话,那么项目的结构是这样的post
如今 咱们来编写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
中ui
//
// 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;
}
复制代码
点击运行spa
若是看见3d
这个说明你的动态库没有找到,通常来说去看Cmake里面的link_directories
是否设置正确,本文的是link_directories(librarys/)
,对应根目录librarys/code
这个错误,大几率是直接这样include
这个问题是缺乏了extern "C"
,他的做用的主要做用就是为了可以正确实现C++代码调用其余C语言代码(主要缘由是由于C++支持函数重载,而C语言并不支持函数重载)因此把 extern "C"
加上
下一步咱们就开始简单的写一点实用的东西
未完持续。。。