交叉編譯 (Cross Compilation) 是指在一台電腦上編譯可以在另一種電腦上執行的程式
舉個例子: 你用 Windows 系統的電腦,寫了一個程式是給 Raspberry Pi (樹莓派,使用 ARM 架構) 跑的,在編譯時候正常來說編譯出的執行檔案只能在 Windows 上執行,如果要移植到樹梅派上就無法執行,因為編譯需要考量到編譯器以及對應的平台是什麼
在工作實際案例上,我需要將 Raspberry Pi 開發的程式碼編譯到一台虛擬機器上,首先我們要先透過指令來確認 CPU 架構以及作業系統
可以輸出當前電腦的系統資訊
Linux
raspberrypi
6.6.31+rpt-rpi-2712
#1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29)
aarch64
GNU/Linux
接著我們需要確認對方電腦資訊
在這邊要注意對方 CPU 架構為 armv7l
,作業系統為 GUN/Linux
由於專案是由透過 CMakeTool 進行建置與安裝的,首先先創建 armv7-toolchain.cmake
-pthread
-static-libgcc -static-libstdc++