在Debian中創建Beaglebone black的應用開發環境之三:cross-toolchain的安裝

接着說第二個方面,安裝cross-toolchain,注意,我前面說過,我不會說使用SDK來安裝,我從頭講本身怎麼創建一個cross-toolchain。如下都基於此。 html

1、cross-toolchain有哪幾種? linux

適用用BBB的cross-toolchain有可使用armel的,也使用armhf的,這個由於浮點運算的方法有不一樣,二者的不一樣不詳說,網上一把把的解釋,說的都比我好。 redis

我建議使用armhf的,由於浮點運算更快,並且自己BBB的MCU就支持硬件浮點運算,debian、unbuntu等都在支持armhf,90%的軟件包也支持armhf。 shell


2、簡要說明怎麼安裝armel的cross-toolchain bash

其實,TI的EZLinux SDK自帶的cross-toolchain就是armel的。在debian(wheezy)下安裝armel的cross-toolchain特別簡單。 app

還記得上一個blog,咱們search過arm-linux-gnueabi嗎,找到許多軟件包吧,那麼結合我前面講的cross-toolchain就是編譯、連接、調試的工具組合嘛,怎麼裝,不是很明瞭的事兒嗎? ssh

你說對了,直接aptitude install啊!你能夠 gcc/g++/gdb。。。。分別裝,也能夠直接安裝一個工具包組合binutils-arm-linux-gnueabi。 工具


3、安裝armhf的cross-toolchain 測試

比較好的一個armhf的cross-toolchain就是linaro的,咱們就裝它了。 網站

1、下載軟件包

從linaro的網站下載預編譯二進制包,地址:https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10

注意選擇的版本哦,咱們要使用linux下的哦。選擇這個:

gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz

而後,將其傳遞到你的虛擬機下的debian上,什麼你問怎麼傳遞?My God,咱們前面說如何創建共享文件夾是用來睡覺的?咱們前面說的xshell的xftp是吃乾飯的?咱們前面說的ssh下的rz/sz是用來打醬油的?方法太多了!

還有一個方法,你的debian已經能夠經過橋接網卡上網了,直接在你的debian環境下面去下載啊!


2、解壓壓縮包

將你下載的gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz文件,放在一個你想使用的特定目錄,好比個人就是:~/BBBProject/CrossToolChain目錄,你問我這個目錄怎麼來的?我服了你了,我是mkdir來的,你呢?

好了,進入這個目錄,看看文件在不在吧:

1: robeer@RobeerDebianPC:~/BBBProject/CrossToolChain$ ls
2: gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz

 

看到這個文件了,我來解壓:

1: robeer@RobeerDebianPC:~/BBBProject/CrossToolChain$ tar -xvf gcc*.xz

 

等啊等,完成了,咱們看看,是否是它:

1: robeer@RobeerDebianPC:~/BBBProject/CrossToolChain$ ls
2: gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz

 

看到目錄了吧,就是它了,它裏面有什麼呢,你本身進去ls吧。全部工具都在裏面,gcc,g++,gdb都有了。

至此,咱們的工具包是安裝好了,什麼?解壓了就安裝好了?在win下要安裝,要next-next-finish才行啊。在linux下,一切就是這麼簡單!

但是很差用啊,每次都要帶着全路徑使用,怎麼辦?環境變量啊!


3、設置環境變量

咱們知道linux是採用絕對路徑使用的,咱們把咱們的cross-toolchain所在的目錄加入系統的環境變量不就能夠直接使用了嗎?

修改環境變量能夠有不少種方法,我採用其中一種比較穩妥的方法,修改~/.bashrc
文件。至於爲何是這個文件,請google。

1: robeer@RobeerDebianPC:~$ sudo nano .bashrc

 

而後,在這個文件中,最後一行加入如下兩個語句:

1: PATH=$PATH:/home/robeer/BBBProject/CrossToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin
2: export PATH

 

請注意,第一行的$PATH後面是英文冒號,而冒號後面是你的cross-toolchain的可執行文件目錄(bin目錄)的絕對路徑。 這兩句的意思就是將cross-toolchain的可執行文件路徑加入系統環境變量PATH中。

接下來幹嘛?讓環境變量生效吧!請使用source命令吧

1: robeer@RobeerDebianPC:~$ source ~/.bashrc

 

查看一下環境變量,是否真的生效了,

1: robeer@RobeerDebianPC:~$ echo $PATH
2: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/robeer/BBBProject/CrossToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin:/home/robeer/BBBProject/CrossToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin

 

呵呵,有了,已經生效了。


4、簡單測試一下cross-toolchain

先看看環境變量的做用,是否是使用tab可以補命令,輸入arm-linux-gnueabihf,按tab鍵(兩次哦),是否是看到以下:

1: robeer@RobeerDebianPC:~$ arm-linux-gnueabihf-
2: arm-linux-gnueabihf-addr2line arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gprof arm-linux-gnueabihf-pkg-config
3: arm-linux-gnueabihf-ar arm-linux-gnueabihf-gcc-4.8.2        arm-linux-gnueabihf-ld arm-linux-gnueabihf-pkg-config-real
4: arm-linux-gnueabihf-as arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-ranlib
5: arm-linux-gnueabihf-c++              arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-ldd arm-linux-gnueabihf-readelf
6: arm-linux-gnueabihf-c++filt arm-linux-gnueabihf-gcc-ranlib arm-linux-gnueabihf-ld.gold arm-linux-gnueabihf-size
7: arm-linux-gnueabihf-cpp arm-linux-gnueabihf-gcov arm-linux-gnueabihf-nm arm-linux-gnueabihf-strings
8: arm-linux-gnueabihf-elfedit arm-linux-gnueabihf-gdb arm-linux-gnueabihf-objcopy arm-linux-gnueabihf-strip
9: arm-linux-gnueabihf-g++              arm-linux-gnueabihf-gfortran arm-linux-gnueabihf-objdump 

 

全部相關的命令都列舉出來了吧,環境變量OK了。

再試一個基本命令,查看一個gcc的版本:

1: robeer@RobeerDebianPC:~$ arm-linux-gnueabihf-gcc -v
2: 使?用?內?建? specs。?
3: COLLECT_GCC=arm-linux-gnueabihf-gcc
4: COLLECT_LTO_WRAPPER=/home/robeer/BBBProject/CrossToolChain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.2/lto-wrapper
5: 目?標?:?arm-linux-gnueabihf
6: 配?置?爲?:?/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.8-2013.10/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --enable-multilib --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1-4.8-2013.10 - Linaro GCC 2013.10' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-isl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-gold --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-mode=thumb
7: 線?程?模?型?:?posix
8: gcc 版?本? 4.8.2 20131014 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2013.10 - Linaro GCC 2013.10)

 

看到正確的版本了吧!再試gdb:

 1: robeer@RobeerDebianPC:~$ arm-linux-gnueabihf-gdb -v
 2: GNU gdb (crosstool-NG linaro-1.13.1-4.8-2013.10 - Linaro GCC 2013.10) 7.6.1-2013.10
 3: Copyright (C) 2013 Free Software Foundation, Inc.
 4: License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 5: This is free software: you are free to change and redistribute it.
 6: There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
 7: and "show warranty" for details.
 8: This GDB was configured as "--host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf".
 9: For bug reporting instructions, please see:
10: <https://bugs.launchpad.net/gcc-linaro>.
11: 

 

恭喜你,你的BBB的armhf的cross-toolchain已經成功的創建了。

相關文章
相關標籤/搜索