国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

webrtc交叉編譯嵌入式的方法

這篇具有很好參考價值的文章主要介紹了webrtc交叉編譯嵌入式的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

背景是我們有嵌入式的需求,需要編譯webrtc進(jìn)入板子上。先說結(jié)論,最后是這樣config之后就編譯通過的:

gn gen out/linux-yeshen --args=‘target_os=“l(fā)inux” target_cpu=“arm64” ffmpeg_branding=“Chrome” proprietary_codecs=true is_debug=true target_sysroot=“…/…/linux/general_yeshen_arm64/aarch64-buildroot-linux-gnu/sysroot” rtc_use_pipewire=false rtc_use_x11=false’

查看編譯選項(xiàng)

gn args out/linux-yeshen --list

主要處理點(diǎn):

  1. target_sysroot 需要設(shè)置為嵌入式板子的sysroot。
  2. target_cpu 需要設(shè)置為版子的cpu類型,可選的有 arm64、arm
  3. 看看有哪些編譯選項(xiàng)不支持的,逐一關(guān)閉即可。比如rtc_use_pipewire是linux上獲取桌面相關(guān)的服務(wù),可以直接關(guān)掉。

這樣就完成了~


其他注意點(diǎn):

  1. 如果要使用android的toolschain,可以這樣指定
custom_toolchain="http://build/toolchain/android:clang_arm64"
# custom_toolchain="http://build/toolchain/linux:clang_arm64"

如果不在常見的支持列表中(arm64/arm32/amd64/x86),可以這樣指定出來,然后寫一些 config.gni。

  1. 特殊報錯處理:

In file included from …/…/modules/rtp_rtcp/source/yeshen.h:72:
…/…/third_party/llvm-build/Release+Asserts/lib/clang/15.0.0/include/emmintrin.h:14:2:
error: “This header is only meant to be used on x86 and x64 architecture”
#error “This header is only meant to be used on x86 and x64 architecture”

如果遇到這類錯誤,大概率是引錯頭文件了(引了x86的頭文件),處理下相關(guān)的import即可。llvm是無辜的,不用看llvm相關(guān)的設(shè)置。

  1. 如果遇到這個報錯:

python3 “…/…/build/toolchain/gcc_link_wrapper.py” --output=“py_quality_assessment/quality_assessment/fake_polqa” – …/…/third_party/llvm-build/Release+Asserts/bin/clang++ -fuse-ld=lld -Wl,–fatal-warnings -Wl,–build-id -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,–color-diagnostics -Wl,–no-call-graph-profile-sort --target=aarch64-linux-gnu -no-canonical-prefixes -Wl,–gdb-index -rdynamic -Wl,-z,defs -Wl,–as-needed -nostdlib++ --sysroot=…/…/build/linux/general_yeshen_arm64/aarch64-buildroot-linux-gnu/sysroot -pie -Wl,–disable-new-dtags -o “py_quality_assessment/quality_assessment/fake_polqa” -Wl,–start-group @“py_quality_assessment/quality_assessment/fake_polqa.rsp” -Wl,–end-group -ldl -lpthread -lrt

ld.lld: error: cannot open crtbeginS.o: No such file or directory
ld.lld: error: unable to find library -lgcc
ld.lld: error: unable to find library -lgcc
ld.lld: error: cannot open crtendS.o: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

說明缺少了這三個文件:crtbeginS.o、libgcc、crtendS.o,可以連接提供sysroot的供應(yīng)商補(bǔ)充。
也可以自己把ln -s相關(guān)文件到 ../../build/linux/general_yeshen_arm64/aarch64-buildroot-linux-gnu/sysroot/usr/lib 目錄下。

玩~文章來源地址http://www.zghlxwxcb.cn/news/detail-677055.html

到了這里,關(guān)于webrtc交叉編譯嵌入式的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【正點(diǎn)原子FPGA連載】第十章Petalinux構(gòu)建Qt和OpenCV交叉編譯開發(fā)環(huán)境 摘自【正點(diǎn)原子】DFZU2EG_4EV MPSoC之嵌入式Linux開發(fā)指南

    【正點(diǎn)原子FPGA連載】第十章Petalinux構(gòu)建Qt和OpenCV交叉編譯開發(fā)環(huán)境 摘自【正點(diǎn)原子】DFZU2EG_4EV MPSoC之嵌入式Linux開發(fā)指南

    1)實(shí)驗(yàn)平臺:正點(diǎn)原子MPSoC開發(fā)板 2)平臺購買地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套實(shí)驗(yàn)源碼+手冊+視頻下載地址: http://www.openedv.com/thread-340252-1-1.html 如果讀者用過2019.1之前的Petalinux,會知道在設(shè)置Petalinux工作環(huán)境變量后可以直接使用arm或aarch64的linux交叉編譯

    2024年02月07日
    瀏覽(30)
  • ARM嵌入式編譯器編譯優(yōu)化選項(xiàng) -O

    Arm嵌入式編譯器可以執(zhí)行一些優(yōu)化來減少代碼量并提高應(yīng)用程序的性能。不同的優(yōu)化級別有不同的優(yōu)化目標(biāo),不僅如此,針對某個目標(biāo)進(jìn)行優(yōu)化會對其他目標(biāo)產(chǎn)生影響。比如想減小生成的代碼量,勢必會影響到該代碼的性能。所以優(yōu)化級別總是這些不同目標(biāo)(代碼量,程序性

    2024年02月16日
    瀏覽(22)
  • 嵌入式:ARM常用開發(fā)編譯軟件介紹

    嵌入式:ARM常用開發(fā)編譯軟件介紹

    ADS(ARM Developer Suite),是在1993年由Metrowerks公司開發(fā)是ARM處理器下最主要的開發(fā)工具。 他的前身是SDT,SDT是ARM公司幾年前的開發(fā)環(huán)境軟件,目前SDT早已經(jīng)不再升級。ADS包括了四個模塊分別是:SIMULATOR;C 編譯器;實(shí)時調(diào)試器;應(yīng)用函數(shù)庫。ADS對匯編、C/C++、java支持的均很好,

    2024年02月06日
    瀏覽(107)
  • 【ARM 嵌入式 編譯系列 2.1 -- GCC 編譯參數(shù)學(xué)習(xí)】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 2 – GCC 編譯過程介紹 下篇文章:ARM 嵌入式 C 入門及漸進(jìn) 3 – GCC attribute ((weak)) 弱符號使用 上篇文章 ARM 嵌入式 編譯系列 2 – GCC 編譯過程介紹 已經(jīng)介紹過了具體的編譯流程,本篇文章主要介紹變過程中常見的

    2024年02月13日
    瀏覽(51)
  • (嵌入式c語言)c語言編譯常見錯誤

    (嵌入式c語言)c語言編譯常見錯誤

    預(yù)處理(gcc -E -o)-編譯(gcc -S -o)-匯編(gcc -c -o)-鏈接(gcc -o) 將代碼中的define 和 include替換成實(shí)體碼? define和include不是,是在編譯過程中處理的。 包含 #include 包含頭文件 宏 #define 宏? 替換? 不會進(jìn)行語法檢查 #define 宏? 宏體? ?宏體要加括號 #define ABC?

    2024年02月11日
    瀏覽(22)
  • 嵌入式-vim編輯器 gcc編譯器

    目錄 一.vim編輯器 1.1簡介 1.2使用說明 1.2.1復(fù)制、粘貼與刪除 1.2.2保存 二.gcc編譯器 2.1基本介紹 2.2編譯原理

    2024年02月09日
    瀏覽(25)
  • 【ARM 嵌入式 編譯系列 10.4 -- 生成二進(jìn)制文件】

    在嵌入的工作中,經(jīng)常會使用到二進(jìn)制文件,那么我們?nèi)绾巫约荷梢粋€二進(jìn)制文件呢?接下來介紹如何將一個只包含將32位數(shù)據(jù)的文件轉(zhuǎn)化為二進(jìn)制文件,原文件如下(數(shù)據(jù)一共 64bytes): 我們使用 gcc 對齊先進(jìn)行編譯然后再進(jìn)行反匯編: 具體命令如下: 通過上面命令會生成

    2024年02月02日
    瀏覽(62)
  • 【ARM 嵌入式 編譯系列 3.5 -- gcc 鏈接參數(shù)介紹】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 上篇文章【ARM 嵌入式 編譯系列 3.4 – 查看所依賴庫文件的路徑 詳細(xì)介紹】一直在提 鏈接參數(shù) ,那么鏈接參數(shù)有哪些,它們又有什么作用呢? 如前一篇文章中的的鏈接參數(shù)到底是什么意思呢? -L : 指定了 鏈接庫的路徑

    2024年01月17日
    瀏覽(44)
  • 【ARM 嵌入式 編譯系列 10 -- GCC 編譯縮減可執(zhí)行文件 elf 文件大小】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 9-- GCC 編譯符號表(Symbol Table)的詳細(xì)介紹 下篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執(zhí)行文件 elf 文件大小 在開發(fā)過程總,總是希望編譯出來的可執(zhí)行文件盡量小,因?yàn)檫@樣可以節(jié)省更多的磁盤空間

    2024年02月09日
    瀏覽(119)
  • 【ARM 嵌入式 編譯系列 4.1 -- GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4 – GCC 編譯屬性 __read_mostly 介紹 下篇文章: ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 likely 和 unlikely 是GCC編譯器提供的一種代碼優(yōu)化特性,這兩個宏用于告訴編譯器某個條件判斷的結(jié)果是真還是假

    2024年02月12日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包