姓名:劉琛? 學(xué)號(hào):19020100265? ?學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:https://blog.csdn.net/zh8706/article/details/107859074?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
【嵌牛導(dǎo)讀】ffmepg版本:ffmpeg-4.2.2和PC操作系統(tǒng):ubuntu 16.04
【嵌牛正文】
1. 編寫build文件
在ffmpeg-4.2.2目錄下創(chuàng)建文件build.sh并保存。
--prefix指定了make install后生成的編譯文件的目錄
注意最后一行--disable-stripping,可避免編譯過(guò)程報(bào)的strip錯(cuò)誤
./configure \
? ? ? ? --prefix="$HOME/work/AIVS/ffmpeg"\
--enable-shared \
--enable-cross-compile \
--target-os=linux \
--arch=aarch64 \
--cc=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \
--cxx=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \
--enable-gpl \
--extra-libs=-ldl \
--extra-cflags="-fPIC" \
--extra-ldflags=-Wl,-Bsymbolic \
--extra-libs="-lpthread -lm"\
--disable-stripping
然后在當(dāng)前目錄下執(zhí)行./build.sh窜管,開始build诬垂,如果權(quán)限不夠,需要執(zhí)行sudo ./build.sh
2. 編譯
make j4
maks install
install完后在/home/AIVS/ffmpeg目錄下生成編譯文件慷彤,lib目錄下為靜態(tài)庫(kù)與靜態(tài)庫(kù)
3. 使用
設(shè)置庫(kù)文件及頭文件路徑
INC_FLAGS += -I$(cdir)/../ffmpeg/include/
LDFLAGS? += -L$(cdir)/../ffmpeg/lib
添加使用的庫(kù)文件:
LDLIBS += -lavfilter -lavformat -lavcodec -lavutil -lswresample -lswscale -lpostproc
注意以上ffmpeg庫(kù)文件直接是彼此依賴的娄蔼,而且有順序規(guī)定的怖喻,推薦的是以上庫(kù)文件順序
將lib目錄下的so庫(kù)拷貝到執(zhí)行文件的相關(guān)目錄下,并使用以下設(shè)置好so庫(kù)的路徑
export LD_LIBRARY_PATH=XXX
題外話:
如果lib目錄下只有靜態(tài)庫(kù).a文件岁诉,沒(méi)有動(dòng)態(tài)庫(kù).so文件锚沸,在生成可執(zhí)行文件的鏈接階段會(huì)將靜態(tài)庫(kù)文件鏈接進(jìn)可執(zhí)行文件中,會(huì)導(dǎo)致文件較大涕癣,如果lib目錄下既有so文件與a文件哗蜈,鏈接器會(huì)優(yōu)先使用動(dòng)態(tài)庫(kù).so文件,這樣可執(zhí)行文件就不會(huì)太大坠韩。
————————————————
版權(quán)聲明:本文為CSDN博主「夜風(fēng)里唱」的原創(chuàng)文章距潘,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明只搁。
原文鏈接:https://blog.csdn.net/zh8706/article/details/107859074