官术网_书友最值得收藏!

1.2.1 編譯工具

由于樹莓派4B的處理器采用的是Cortex-A架構,使用Arm指令集,與PC的x86處理器使用的指令集完全不同。因此PC的編譯工具不能直接用于開發樹莓派的軟件,需要另外安裝一套針對Arm的編譯工具。在PC上安裝的這組工具被稱為“交叉編譯工具鏈”,或簡稱“交叉編譯器”。Arm交叉編譯器可以在PC上用源碼編譯生成,也可以通過軟件倉庫直接安裝二進制程序。源碼編譯安裝過程比較煩瑣,如無特殊要求,可以通過包管理器安裝二進制程序。Debian或Ubuntu系統可以通過下面的命令安裝交叉編譯工具:

# apt-get  install  g++-arm-linux-gnueabihf

在命令行操作中,提示符“#”表示超級用戶權限,“$”表示普通用戶權限。在本書中,PC端的命令用這兩個不同的提示符來嚴格區分這兩類用戶。獲取超級用戶的權限可以通過sudo命令,也可以用su命令直接切換到超級用戶。在PC上,各人有自己的使用習慣,本書對此也不再區分,僅以提示符“#”表示。而在樹莓派個人應用系統上,為了提高效率,在沒有特別要求的情況下,一般都以超級用戶的身份操作。

依照依賴關系,包管理器會安裝所有Arm架構的g++的基礎包,包括Arm版本的binutils和glibc。為了簡化以后的命令操作,安裝后,建議到安裝路徑下(一般是/usr/bin)將所有帶有arm-linux-gnueabihf-前綴的命令進行arm-linux-前綴的鏈接,命令操作如下:

# for f   in $(ls arm-linux-gnueabihf-*);       \
       do  ln -s  $f $(echo   $f|sed  "s/gnueabihf-//");  \
       done

之后在交叉編譯時不需要用arm-linux-gnueabihf-gcc這么長的命令,只需輸入arm-linuxgcc即可。

如果按64位Arm指令集Armv8-A編譯,則需要安裝aarch64-linux-gnu編譯工具鏈:

# apt-get  install  g++-aarch64-linux-gnu

按類似的方法,進行一組aarch64-linux-前綴的鏈接。

本書以樹莓派4B為研究對象。由于樹莓派4B的處理器同時支持32位和64位指令集,為了更大限度地發揮系統性能,采用64位指令集,交叉編譯器也使用aarch64-linux-前綴。

理論上說,也可以將編譯器直接安裝在樹莓派系統上。構建針對目標系統的編譯環境將在第5章介紹。但由于樹莓派資源有限,性能也不及PC,不適宜大批量的軟件編譯,而且最初階段的移植也必須在PC上編譯。對于有明確應用背景的嵌入式系統來說,在目標系統上安裝開發環境的意義也不大。

主站蜘蛛池模板: 杭州市| 鄢陵县| 齐河县| 彭州市| 炉霍县| 安阳县| 昆山市| 托克逊县| 新巴尔虎右旗| 崇文区| 吉木萨尔县| 广灵县| 措勤县| 聂拉木县| 彰化县| 桑日县| 肥城市| 江源县| 星座| 商丘市| 五河县| 阳信县| 西乌| 政和县| 子洲县| 双城市| 靖西县| 镇沅| 三原县| 长治县| 黎城县| 广灵县| 顺昌县| 闵行区| 乌鲁木齐市| 龙陵县| 靖江市| 楚雄市| 保定市| 瑞昌市| 钟祥市|