天天看點

樹莓派交叉編譯(二)——交叉編譯工具鍊的安裝一、交叉編譯工具鍊的安裝二、 如何在ubuntu上進行交叉編譯三、帶wiringPi庫的交叉編譯如何進行

一、交叉編譯工具鍊的安裝

使用到的工具鍊:tools-master

1.從共享檔案夾拷貝到工作目錄

cp /mnt/hgfs/share/tools-master.zip
           

2.解壓

unzip tools-master.zip
           

3.進入下面這個路徑

cd tools-master/
cd arm-bcm2708/
cd gcc-linaro-arm-linux-gnueabihf-raspbian-x64/
cd bin
           

4. pwd獲得目前路徑

/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
           

5.echo $PATH 獲得目前環境變量的值

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
           

6. 臨時有效,配置環境變量

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
           

7.永久有效,配置環境變量

  1. 修改工作目錄下的.bashrc 隐藏檔案,配置指令終端的
vi /home/CLC/.bashrc
           
  1. 在檔案最後一行加入
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
           
  1. 加載配置檔案,馬上生效配置
source /home/CLC/.bashrc
           

二、 如何在ubuntu上進行交叉編譯

1.檢查下交叉編譯工具對不對

arm-linux-gnueabihf-gcc    -v
           

2.交叉編譯

arm-linux-gnueabihf-gcc  xxx.c  -o  xxx
           

3.如何把編譯生成的可執行檔案下載下傳到樹莓派上

scp  xxx   [email protected]:/home/pi
           

指令 檔案名 開發闆使用者名@開發闆位址:開發闆的絕對路徑

輸入密碼:raspberry

三、帶wiringPi庫的交叉編譯如何進行

  1. 正常我們先要交叉編譯wiringPi庫,編譯出的庫适合樹莓派,這時候交叉編譯可執行程式的試試,連結庫的格式也是正确的。
  2. 通過-I 、-L來指定。

因為連結的庫的格式不對,是主控端的平台,會出現以下錯誤提醒:

arm-linux-gnueabihf-gcc demo2.c -I /home/CLC/lessonPI/WiringPi/wiringPilwiringPi/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/…/lib/gcc/arm-linux-gnueabihf/4.8.3/…/…/…/…/arm-linux-gnueabihf/bin/ld: cannot find -lwiringPi

collect2: error: ld returned 1 exit status

把樹莓派的wringPI庫拿上來用:

scp libwiringPi.so.2.50 [email protected]:/home/CLC/lessonPi
           

軟連結(常用):

概念:

  1. 軟連結檔案類似于Windows的快捷方式。
  2. 在符号連接配接中,檔案實際上是一個文本檔案,其中包含的有另一檔案的位置資訊。
  3. 你標明的位置上生成一個檔案的鏡像,不會占用磁盤空間 。

如何生成:

ln  -s  libwiringPi.so.2.50  libwiringPi.so
指令 參數 要被連結的檔案      軟連結檔案名字
           

硬連結

指通過索引節點來進行連接配接。

如何生成:

ln libwiringPi.so.2.50 libwiringPi.so
           

它會在你標明的位置上生成一個和源檔案大小相同的檔案。

帶wiringPI庫的交叉編譯

arm-linux-gnueabihf-gcc  xxx.c  -I /home/CLC/lessonPi/wiringPi -L. -lwiringPi