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

歡迎訪問 生活随笔!

生活随笔

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

Ubuntu

Ubuntu12.04下arm交叉编译环境的建立

發(fā)布時間:2025/4/16 Ubuntu 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu12.04下arm交叉编译环境的建立 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://blog.csdn.net/heyangya2009/article/details/5424376

?

備注:ubuntu12.04+Android+Real6410

?

在主機上用來編譯其他類型機器可執(zhí)行代碼的編譯器就叫交叉編譯器,我們進行嵌入式linux的開發(fā)的主機的處理器大部分都是x86,而我們的嵌入式系統(tǒng)的處理器有可能是arm、MIPS等非x86處理器,這時候必須使用arm、MIPS等交叉編譯器才能編譯出這些處理器能夠執(zhí)行的代碼。這里我們使用的是ARM公司提供的新一代的arm交叉編譯器EABI編譯器。

?

1.???訪問codesourcery官方網(wǎng)站下載最新的ARM交叉編譯工具鏈,當前最新版本是arm-2009q3

http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2拷貝到root下,用命令

tar –jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解壓到當前為目錄下,生成arm-2009q3目錄,如下圖:


1

可見采用的交叉編譯器是arm-none-linux-gnueabi-gcc4.4.1

2.???設置交叉編譯工具環(huán)境變量

etc/bash.bashrc文件下增加下面的內(nèi)容:

#ARM_CROSS2009=/root/arm-2009q3

export PATH=$PATH:$ARM_CROSS2009/bin

保存退出后用source/etc/bash.bashrc使配置生效,通過命令echo $PATH來查看PATH環(huán)境變量的設置,比如:

/home/kandi/jdk1.6.0_45/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/kandi/jdk1.6.0_45/jre/bin:/root/arm-2009q3/bin

我們可以通過arm-none-linux-gnueabi-gcc –v(記得這里有空格),內(nèi)容如下:

Using built-in specs.

Target: arm-none-linux-gnueabi

Configured with:/scratch/julian/2009q3-respin-linux-lite/src/gcc-4.4/configure--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu--target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap--disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs--with-arch=armv5te --with-gnu-as --with-gnu-ld--with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}%{O2:%{!fno-remove-local-statics: -fremove-local-statics}}%{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}'--enable-languages=c,c++ --enable-shared --disable-lto --enable-symvers=gnu--enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2009q3-67'--with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls--prefix=/opt/codesourcery--with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc--with-build-sysroot=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/libc--with-gmp=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr--with-mpfr=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr--with-ppl=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'--with-cloog=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr--disable-libgomp --enable-poison-system-directories--with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin--with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin

Thread model: posix

gcc version 4.4.1 (Sourcery G++ Lite2009q3-67)

表示設置生效,在設置過程中發(fā)現(xiàn)這樣的規(guī)律,設置的終端調(diào)用source/etc/bash.bashrc,好像如果在設置的終端輸入arm-none-linux-gnueabi-gcc –v就看不到上面的gcc信息,在新的終端上就可以。

?

但去編譯Uboot的時候發(fā)現(xiàn)有下面的錯誤信息:

make: arm-linux-gcc:命令未找到

find/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410 -type f \

????????????? \(-name 'core' -o -name '*.bak' -o -name '*~' \

????????????? -o-name '*~' -o -name '.depend*' \

????????????? -o-name '*.o'? -o -name '*.a'? \) -print \

????????????? |xargs rm -f

rm -f u-boot*

rm -f examples/hello_worldexamples/timer \

?????? ????? examples/eepro100_eeprom examples/sched \

?????? ?? ???examples/mem_to_mem_idma2intrexamples/82559_eeprom \

?????? ????? examples/smc91111_eepromexamples/interrupt \

?????? ????? examples/test_burst

rm -f tools/img2srec tools/mkimagetools/envcrc \

????????????? tools/gen_eth_addr

rm -f tools/mpc86x_clk tools/ncb

rm -f tools/easylogo/easylogotools/bmp_logo

rm -f tools/gdb/astest tools/gdb/gdbconttools/gdb/gdbsend

rm -f tools/env/fw_printenvtools/env/fw_setenv

rm -f board/cray/L1/bootscript.cboard/cray/L1/bootscript.image

rm -f board/netstar/eepromboard/netstar/crcek board/netstar/crcit

rm -f board/netstar/*.srecboard/netstar/*.bin

rm -f board/trab/trab_fktboard/voiceblue/eeprom

rm -f board/integratorap/u-boot.ldsboard/integratorcp/u-boot.lds

rm -f include/bmp_logo.h

rm -f nand_spl/u-boot-splnand_spl/u-boot-spl.map

make: arm-linux-gcc:命令未找到

for dir in tools examples post post/cpu; do make -C $dir _depend ; done

make[1]: arm-linux-gcc:命令未找到

make[1]:正在進入目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/tools'

make[1]:正在離開目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/tools'

make[1]: arm-linux-gcc:命令未找到

make[1]:正在進入目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/tools'

make[1]:沒有什么可以做的為 `_depend'。

make[1]:正在離開目錄 `/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/tools'

make[1]: arm-linux-gcc:命令未找到

make[1]:正在進入目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/examples'

/bin/sh: 1: arm-linux-gcc: not found

dirname:缺少操作數(shù)

請嘗試執(zhí)行"dirname--help"來獲取更多信息。

/bin/sh: 1: arm-linux-gcc: not found

dirname:缺少操作數(shù)

請嘗試執(zhí)行"dirname--help"來獲取更多信息。

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

make[1]: ***沒有規(guī)則可以創(chuàng)建“_depend”需要的目標“.depend”。停止。

make[1]:正在離開目錄 `/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/examples'

make[1]: arm-linux-gcc:命令未找到

make[1]:正在進入目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/post'

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

make[1]: ***沒有規(guī)則可以創(chuàng)建“_depend”需要的目標“.depend”。停止。

make[1]:正在離開目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/post'

make[1]: arm-linux-gcc:命令未找到

make[1]:正在進入目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/post/cpu'

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

/bin/sh: 3: arm-linux-gcc: not found

make[1]: ***沒有規(guī)則可以創(chuàng)建“_depend”需要的目標“.depend”。停止。

make[1]:正在離開目錄`/home/kandi/android2.3/sc/android-source/s3c-u-boot-1.1.6-Real6410/post/cpu'

make: *** [depend]錯誤 2

cp: 無法獲取"u-boot.bin"的文件狀態(tài)(stat):沒有那個文件或目錄

后來改為用arm-2008q3的交叉編譯環(huán)境就可以了,看來交叉編譯環(huán)境和linux內(nèi)核、實際的Real6410還有關的,后續(xù)要注意。


在使用過程中發(fā)現(xiàn)root和個人的PATH環(huán)境變量值不一樣如下圖:


2

在此先記錄下來

etc/bash.bashrc

export JAVA_HOME=/home/kandi/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ARM_CROSS2008=/root/arm-2008q3
#ARM_CROSS2009=/root/arm-2009q3
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin:$ARM_CROSS2008/bin
#export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin:$ARM_CROSS2009/bin

總結(jié)

以上是生活随笔為你收集整理的Ubuntu12.04下arm交叉编译环境的建立的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。