基於cmake的交叉編譯工具鏈

2021-10-14 14:04:09 字數 1456 閱讀 4919

交叉編譯是a機器上編譯生成,執行在b機器上。兩個機子有不同的機器指令。
宿主機(host)是指使用交叉編譯工具鏈執行編譯的主機,一般配置較高,如pc主機;目標機(target)是指執行交叉編譯出的可執行程式的機器,一般資源有限,如嵌入式開發板。
工具鏈一般是由編譯器、聯結器、直譯器和偵錯程式組成,同時也包括目標機器的標頭檔案、庫檔案等編譯資源。

cmake_system_name目標機所在作業系統名稱

cmake_system_processor

cmake_c_compiler

cmake_cxx_compiler

cmake_find_root_path

cmake_find_root_path_mode_program

cmake_find_root_path_mode_include

cmake_find_root_path_mode_library

cmake_find_root_path_mode_package

交叉編譯搜尋模式

# linux 交叉編譯工具鏈檔案

set(cmake_system_name linux)

set(cmake_system_processor arm)

set(cmake_sysroot /home/devel/rasp-pi-rootfs)

set(cmake_staging_prefix /home/devel/stage)

set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf)

set(cmake_c_compiler $/bin/arm-linux-gnueabihf-gcc)

set(cmake_cxx_compiler $/bin/arm-linux-gnueabihf-g++)

set(cmake_find_root_path_mode_program both)

set(cmake_find_root_path_mode_library only)

set(cmake_find_root_path_mode_include only)

set(cmake_find_root_path_mode_package only)

編譯方法

交叉編譯工具鏈

交叉編譯工具鏈 交叉編譯 就是在一種平台上編譯出能執行在體系結構不同的另一種平台上的程式 比如在pc平台 x86 cpu 上編譯出能執行在以arm為核心的cpu平台上的程式,編譯得到的程式在x86 cpu平台上是不能執行的,必須放到arm cpu平台上才能執行,雖然兩個平台用的都是linux系統 交...

cmake交叉編譯

1 設定交叉編譯之前,必須在 cmakelist.txt 前面加上這樣一句,這樣 cmake 才會認為你是要交叉編譯 set cmake system namelinux 其中linux 是要編譯過去的平台,如果你是在 linux 下交叉編譯 window 的東西,就要寫成 windows 了。我是...

CMAKE 交叉編譯

步驟需要include open source 的時候,有兩種常見的cross compile 的設定方式 cmake 有公開標準,比較容易自行擴充到不同的平台上 makefile configure all output bin lib 所有要編出來的產物與link方式 有一套cmake語法,與 ...