ffmpeg a7交叉編譯

2021-10-16 13:17:25 字數 1204 閱讀 9384

ffmpeg交叉編譯之路

因為公司上新專案,需要用到ffmpeg,因此對ffmpeg進行交叉編譯。

宣告:本人是做上位機的,被強行拉去搞這個東西,因此很多東西都不明白,許多坑就是因此而踩到的。

解壓完成之後,就需要進行configuer了,configuer指令可參靠configure --help 自行填寫,其中有很多自選選項,需要了解功能之後決定是disable還是enable。

筆者所用configuer指令如下:

./configure --prefix=./fmg_haisi --enable-cross-compile --target-os=linux --cross-prefix=/opt/arm-himix200-linux/arm-himix200-linux/bin/ --cc=arm-himix200-linux-gcc --enable-shared --disable-static --cpu=cortex-a7 arch=arm32

裡面的指令解釋如下:

–prefix: 編譯好之後,makeinstall的目標目錄

enable-cross-compile:使能交叉編譯

target-os:目標系統

cross-prefix=交叉編譯工具鏈路徑

cc:交叉編譯工具

cpu:cpu名稱

arch=板子型別(32或64,可不指定)

現在我們填好了configure指令,按下enter

configure完成之後,進入下一步:

make -j8 (-j8是編譯使用執行緒數)

,系統可能會反饋給你如下資訊

1 ysam錯誤

請自行安裝

2 sys/videoio.**件找不到

請去交叉編譯工具鏈的include下方,自行建立

3,strip錯誤

交叉編譯鏈路徑有錯,改正並確認bin目錄下存在該檔案

4,pkg-config

此警告不必理會,這是個遍歷系統標頭檔案的工具

5,「asm「錯誤

彙編錯誤,目標平台位數與交叉編譯工具鏈不匹配

因為,筆者的交叉編譯工具鏈比較亂,所以爆出了這些錯誤,假如你的交叉工具鏈是很整潔的,以上的錯誤都不會出現。

編譯成功,之後:

make install

完成之後 就可以在 你所指定的prefix中看到bin include lib這下資料夾了。

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...