[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"
加上
下一步咱們就開始簡單的寫一點實用的東西
未完持續。。。