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 ...