日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

建立a8 linux开发环境,Fedora 14下建立 omap3530 开发环境 - 交叉编译器

發布時間:2025/3/11 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 建立a8 linux开发环境,Fedora 14下建立 omap3530 开发环境 - 交叉编译器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主機升級到Fedora 14,下載了crosstool-ng-1.10.0,編譯目標為 arm-cortex_a8

編譯步驟:

1、直接拷貝 crosstool-ng-1.10.0/samples/arm-cortex_a8-linux-gnueabi/crosstool.config 到目標目錄中的 .config

2、執行 ct-ng menuconfig 查看和校驗編譯選項,不做任何改動。

3、執行 ct-ng build,如果想加快編譯速度,并且主機具備多核,則可以使用選項build.X來編譯,其中X表示使用的線程數,一般最多為主機核心的2倍就足夠。

編譯并未如期通過,出現如下錯誤:

[INFO?]??=================================================================

[INFO?]??Installingstaticcore?C?compiler

[EXTRA]????Configuringstaticcore?C?compiler

[EXTRA]????Buildingstaticcore?C?compiler

[ERROR]????make[2]:?***?[cc1-dummy]?Error?1

[ERROR]????make[1]:?***?[all-gcc]?Error?2

[ERROR]????Build?failedinstep'Installing?static?core?C?compiler'

[ERROR]????Error?happenedin'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.10.0/scripts/functions'infunction'CT_DoExecLog'(line?unknown,?sorry)

[ERROR]??????????called?from'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.10.0/scripts/build/cc/gcc.sh'at?line?#?320infunction'do_cc_core'

[ERROR]??????????called?from'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.10.0/scripts/build/cc/gcc.sh'at?line?#?52infunction'do_cc_core_pass_1'

[ERROR]??????????called?from'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.10.0/scripts/crosstool-NG.sh'at?line?#?606infunction'main'

[ERROR]????Look?at'/home/sam/x-tools/arm-cortex_a8-linux-gnueabi/build.log'formore?info?onthiserror.

[ERROR]??(elapsed:?10:11.57)

[10:11]?/?make:?***?[build]?錯誤?2?錯誤是在第一次編譯靜態GCC時出錯的,按照出錯提示查看編譯日志build.log,找到如下錯誤信息:

[ALL??]????/usr/bin/ld:?cannot?find?-lstdc++

[ALL??]????collect2:?ld?returned?1?exit?status

[ERROR]????make[2]:?***?[cc1-dummy]?Error?1

看來是鏈接程序找不到 libstdc++ 所致,啟動ct-ng menuconfig, 進入菜單 C Compiler,可以看到

[*] Link libstdc++ statically into the gcc binary

選項,GCC在編譯時被靜態鏈接了,也就是沒有生成libstdc++.so,所以導致libstdc++連接不到,www.linuxidc.com因此去掉該選項,再次編譯。

出現如下錯誤:

[INFO?]??Installing?C?library?headers

[EXTRA]????Configuring?C?library

[EXTRA]????Installing?C?library?headers

[ERROR]????make[3]:?***?[manual/install-headers]?Error?2

[ERROR]????make[2]:?***?[install-headers]?Error?2

[ERROR]????Build?failedinstep'Installing?C?library?headers'

[ERROR]????Error?happenedin'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.9.3/scripts/functions'infunction'CT_DoExecLog'(line?unknown,?sorry)

[ERROR]??????????called?from'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.9.3/scripts/build/libc/glibc.sh'at?line?#?175infunction'do_libc_headers'

[ERROR]??????????called?from'/home/sam/devel/devkit8000/crosstool-ng/crosstool-ng-1.9.3/scripts/crosstool-NG.sh'at?line?#?597infunction'main'

[ERROR]????Look?at'/home/sam/x-tools/arm-cortex_a8-linux-gnueabi/build.log'formore?info?onthiserror.

[ERROR]??(elapsed:?38:55.31)

[38:56]?/?make[1]:?***?[build]?錯誤?2

make:?***?[build.4]?錯誤?2

可見錯誤的是在編譯GLIBC時發生的,打開build.log,可以看到如下錯誤信息:

[ALL??]????make[4]:?Entering?directory?`/home/sam/devel/devkit8000/crosstool-ng/arm-cortex_a8/.build/src/glibc-2.9/manual'

[ALL??]????Makefile:240:?***?mixedimplicitand?normal?rules.??Stop.

原來是新的Fedora 14使用的make不支持原來的顯示規則和隱式規則混和的寫法,后來查看make的版本從fedora13到fedora14進行了一次小升級,從3.81升級到了3.82,但就是這個小升級移除了對makefile中的顯示規則和隱式規則的混和使用的支持,因此編譯通不過。

這還真是一個比較糾結的問題,www.linuxidc.com有較多的軟件已經習慣了make對兩種規則的混用支持,如果移除規則就算解決了glibc,其它軟件編譯極可能還會出現類似問題,看來不得不降級make的版本了。

為了編譯通過,先將make降到Fedora13所使用的3.81版本。

yum --releasever=13 downgrade make

重新編譯,順利通過。

經驗:

如果編譯失敗,但build.log最后看不到明顯的錯誤信息,則可能是由于并行編譯所致,并行編譯在log中的記錄也會被打亂順序,致使錯誤信息看不準確。此時只要不使用并行編譯,就會使錯誤信息在log中準確記錄。

總結

以上是生活随笔為你收集整理的建立a8 linux开发环境,Fedora 14下建立 omap3530 开发环境 - 交叉编译器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。