xcode 中使用ffmpeg 編譯的靜態庫
1、在ffmpeg 官網下載最新的ffmpeg 原始碼:如下
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
2、編譯ffmpeg
直接 執行 ./configure 有些mac 會報一些問題
這是本人遇到的情況
Undefined symbols for architecture x86_64:
"_ff_filters_ssse3", referenced from:
_put_8tap_smooth_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_regular_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_sharp_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_smooth_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_regular_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_sharp_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_smooth_64h_8_ssse3 in libavcodec.a(vp9dsp_init.o)
...
"_ff_pw_m16364_804", referenced from:
l070 in libavcodec.a(vp9itxfm_16bpp.o)
l073 in libavcodec.a(vp9itxfm_16bpp.o)
l082 in libavcodec.a(vp9itxfm_16bpp.o)
l088 in libavcodec.a(vp9itxfm_16bpp.o)
l094 in libavcodec.a(vp9itxfm_16bpp.o)
l100 in libavcodec.a(vp9itxfm_16bpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
從上面錯誤情況看是vp9 不支援 ,因此用下面編譯方法通過
./configure --disable-decoder=vp9 && make && make install
成功編譯出mac版的ffmpeg 靜態庫。
3、使用xcode 呼叫ffmpeg 靜態庫
建立一個簡單的xcode工程 在General裡的Linked Frameworks and Libraries 裡新增相應的 ffmpeg 靜態庫,同時也要新增相應的框架庫
QuarzCore.framework
CoreMedia.framework
AudioToolbox.framework
CoreFoundation.framework
VideoDecoderAcceleration.framework
VideoToolbox.framework
libz.dylib
libav*.a (ffmepg 的靜態庫)
同時新增ffmpeg 標頭檔案搜尋路徑
相關推薦
Mac OS 下手動編譯靜態庫及Xcode中使用該靜態庫的例子(一)
第一部分 Mac OS 下建立靜態庫 前言 眾所周知,Mac OS實際上是基於UNIX來編寫的,因此它保留了眾多的UNIX原有的特性,就靜態庫而言,仍舊以libXXXX.a來命名。要編譯Mac下的靜態庫,方法有很多,如使用Xcode的建立和編譯,也可以直接使用命令列(可結合
Mac OS 下手動編譯靜態庫及Xcode中使用該靜態庫的例子(二)
前言 在使用Xcode建立app時,通常需要呼叫一些第三方提供的靜態庫,這部分將詳細講述如何呼叫前面我們建立的靜態庫libperson.a。 啟動Xcode並建立一個新的Xcode專案 選擇單示圖應用進行建立 輸入專案名並設定好將要執行的裝置 設定專案要儲存的目錄
xcode 9 上編譯靜態庫在低版本xcode 可能連結失敗
Xcode 9上編譯的靜態庫在低版本xcode 上編譯有可能提示連結失敗。錯誤:ld: framework not found FileProvider for architecture x86_64 / arm64clang: error: linker command f
Ubuntu ffmpeg編譯靜態庫和共享庫
Ubuntu16.04 環境下編譯ffmpeg生成靜態庫和共享庫 基本上按照這個步驟編 Compile FFmpeg on Ubuntu,Debian,or Mint Get the Dependencies sudo apt-get u
ffmpeg的ubuntu的編譯過程(編譯靜態庫和動態庫)
ffmpeg第一步源碼下載通過git下載git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg或者直接下載wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.bz2如果是下載的ffmpeg-3.3.tar.bz2 需要進
在ubuntu系統下編譯ffmpeg的靜態庫
在ubuntu上配置ffmpeg的開發環境,參考:http://blog.csdn.net/leechee_1986/article/details/41891119 到ffmpeg官網下載ffmpeg的原始碼,解壓,編譯 ./configure --enable-gpl
VS編譯靜態庫 .lib 其中Release 版本比Debug版本要大好多原因
bug -1 工程 blog 技術分享 其中 logs debug image 如果工程代碼使用了: 把此選項關閉即可減少庫大小不少: VS編譯靜態庫 .lib 其中Release 版本比Debug版本要大好多原因
GCC實現多文件編譯,靜態庫,動態庫
blank () iba exp main.c run spa 文件夾 con 一 代碼 //add.h int add(int a, int b); //add.c int add(int a, int b) { r
linux+vs2013編譯靜態庫和動態庫
cal 控制 文件 urn 運行時 names c++ spec using Linux下創建與使用靜態庫 Linux靜態庫命名規則 Linux靜態庫命名規範,必須是"lib[your_library_name].a":lib為前綴,中間是靜態庫名,擴展名為.a。 創建靜態
OpenGV Win7 VS2013 Cmake 編譯靜態庫
bin文件 就是 param 錯誤 uil 這一 ons 出現 pat 最近在實驗室師兄的介紹下看了下OpenGV庫(Open Geometric Vision),在ubuntu16上按照!網站 的方法可以很方便的安裝,就是要主要make的線程數。一開始用make -j4,
如何編譯靜態庫及將多個.a靜態庫合併成一個.a靜態庫
所使用的命令為ar 1 將所有的.a庫解壓成.o檔案ar x xx.a 2 將所有的.o 檔案合併成.aar rcs xx.b *.o 3 編譯.a 靜態庫 1)生成對應的.o 檔案 gcc -c a.c b.c 2)使用ar命令合成靜態庫 ar crs libjson.a *.o 3) 檢視編譯庫
用Makefile編譯靜態庫檔案和動態庫檔案
最近要用到的簽名演算法只給了一堆原始碼沒有給庫檔案,api都不好呼叫,於是嘗試著用Makefile給一堆c原始碼編譯靜態連結庫檔案和動態連結庫檔案。 Makefile檔案編輯的相關資料連結: https://www.cnblogs.com/yya
CMakelist編譯靜態庫和動態庫
從程式碼模組化的角度,往往需要將一個系統工程拆分成很多小的模組,編譯成庫函式也是很好的方法。 編譯庫函式的時候,可以選擇編譯成靜態庫或者動態庫。靜態庫對應.a檔案,動態庫對應.so檔案。 還是以氣泡排序為例加以說明。 編寫StaticBubble.h標頭檔
linux 編譯靜態庫例子--from周立功文件
/* hello1.c */#include <stdio.h>int hello1 (void){printf("hello 1!\n");return 0;}/* hello2.c */#include <stdio.h>int hello2 (void){printf("hell
openssl windows自動編譯+靜態庫符號缺失問題(/Fd選項)
摘要: 本文描述使用bat指令碼自動編譯openssl1.0.2j的過程,並解釋了使用openssl靜態庫時可能出現的連結告警(warning LNK4099: PDB 'lib.pdb' was not found),原因是其符號檔案lib.pdb缺失,本文提供的編譯
linux 編譯靜態庫檔案
編譯步驟: gcc -c *.c 編譯靜態庫 ar -r libtest.a *.o 編譯執行檔案 gcc main.c -L libtest.a -o main ./main
在VS2015中匯入/建立靜態庫並使用靜態庫【VS+Qt專案開發系列】
本專案示例原始碼已經上傳,歡迎點選下載~注:靜態庫——在連結步驟中,聯結器將從庫檔案取得所需的程式碼,複製到生成的可執行檔案中,這種庫稱為靜態庫,其特點是可執行檔案中包含了庫程式碼的一份完整拷貝;缺點就是被多次使用就會有多份冗餘拷貝。即靜態庫中的指令都全部被直接包含在最終生成
linux環境下給BOOST庫編譯靜態庫加上-fPIC選項
在linux環境下,使用靜態方式編譯boost時,bjam沒有新增-fPIC, 解決辦法如下: 編輯tools/build/v2/tools/gcc.jam檔案,將第391行的 if( $link ) = shared 註釋掉,如下圖:
使用拆分庫的方法解決iOS中Duplicate Symbol靜態庫衝突
在自己寫SDK或者使用第三方庫的時候,可能會遇到編譯時Duplicate Symbol錯誤,本文就是通過使用拆分庫的方法,將庫中衝突的目標檔案去除,以解決此類問題。 遇到此類問題,一般都是兩個庫中包含了相同的目標檔案導致,可以通過去除其中一個庫中的衝突目標檔案來解決。 大致解決思路如下: 檢視庫支援
Qt:Qt 5.* &vs2015 編譯靜態庫版本
簡介 靜態編譯qt5.6 、靜態編譯qt5.7、 靜態編譯qt5.8 安裝Qt 去Qt官網下載Qt安裝包 安裝Qt和原始碼,一定要勾選source選項 新增bin到系統變數 工具 需要python3和 perl、 vs2015 第三