CMake 交叉編譯


CMake 交叉編譯

交叉編譯就是說在平台 A (宿主機)上編譯出可以在平台 B (目標機) 上運行的程序,比如在 x86 上編譯 ARM 程序

要交叉編譯首先要去下載目標平台的工具鏈,比如要編譯 ARM 程序就應該去下載 Linaro 提供的工具鏈

交叉編譯時,我們的 CMake 文件也需要做一些改動

指定目標機的操作系統和處理器架構

SET (CMAKE_SYSTEM_NAME Linux)
SET (CMAKE_SYSTEM_PROCESSOR aarch64)

更換編譯器

CMake 提供一些變量來控制程序的編譯和鏈接:

  • CMAKE_C_COMPILER :編譯 C 代碼的程序
  • CMAKE_CXX_COMPILER :編譯 C++ 代碼的程序
SET (CMAKE_C_COMPILER   "aarch64-linux-gnu-gcc")
SET (CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")

更換編譯器前應該更改 PATH 環境變量,將你的交叉編譯編譯器路徑放進去,否則 CMake 是沒法找到它們的

將以上指令放到一個 xxx.cmake 中,比如 aarch64-linux-gnu.toolchain.cmake,然后以 cmake -DCMAKE_TOOLCHAIN_FILE=aarch64-linux-gnu.toolchain.cmake .. 的形式使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM