交叉編譯是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語法,與 ...