- 樹莓派Linux操作系統移植
- 方元 沈克勤編著
- 789字
- 2023-08-10 16:32:24
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上編譯。對于有明確應用背景的嵌入式系統來說,在目標系統上安裝開發環境的意義也不大。
- Mastering ElasticSearch
- Implementing Cisco UCS Solutions
- Windows Phone 7.5 Data Cookbook
- 數據中心系統工程及應用
- 奔跑吧 Linux內核(入門篇)
- 8051軟核處理器設計實戰
- Linux系統安全基礎:二進制代碼安全性分析基礎與實踐
- 細說Linux基礎知識
- Windows 7應用入門與技巧
- 云原生落地:產品、架構與商業模式
- OpenSolaris設備驅動原理與開發
- Learn CUDA Programming
- Advanced Infrastructure Penetration Testing
- Learn SwiftUI
- μC/OS-III內核實現與應用開發實戰指南:基于STM32