一、交叉編譯工具鍊的安裝
使用到的工具鍊: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.永久有效,配置環境變量
- 修改工作目錄下的.bashrc 隐藏檔案,配置指令終端的
vi /home/CLC/.bashrc
- 在檔案最後一行加入
/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
- 加載配置檔案,馬上生效配置
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庫的交叉編譯如何進行
- 正常我們先要交叉編譯wiringPi庫,編譯出的庫适合樹莓派,這時候交叉編譯可執行程式的試試,連結庫的格式也是正确的。
- 通過-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
軟連結(常用):
概念:
- 軟連結檔案類似于Windows的快捷方式。
- 在符号連接配接中,檔案實際上是一個文本檔案,其中包含的有另一檔案的位置資訊。
- 你標明的位置上生成一個檔案的鏡像,不會占用磁盤空間 。
如何生成:
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