cmake指定交叉編譯

2021-09-10 23:12:27 字數 2199 閱讀 6003

告知當前使用的是交叉編譯方式,必須配置,cmake_system_name即目標機target所在的作業系統名稱,比如arm或者linux你就需要寫」linux」,如果android平台你就寫」android」,如果你的嵌入式平台沒有相關os你即需要寫成」generic」.

set(cmake_system_name linux)

指定c交叉編譯器,必須配置

或交叉編譯器使用絕對位址

set(cmake_c_compiler 「arm-linux-gcc」)

指定c++交叉編譯器

set(cmake_cxx_compiler 「arm-linux-g++」)

這個是可選項,但是在移動開發中很重要,代表目標系統的硬體或者cpu型號,例如arm,x86 etc。

set(cmake_system_processor 「arm」)

指定交叉編譯環境安裝目錄…

set(cmake_find_root_path 「…」)

從來不在指定目錄下查詢工具程式

set(cmake_find_root_path_mode_program never)

只在指定目錄下查詢庫檔案

set(cmake_find_root_path_mode_library only)

只在指定目錄下查詢標頭檔案

set(cmake_find_root_path_mode_include only)

指定編譯器--sysroot編譯引數

cmake_sysroot只有在3.0以上的版本才有效

新建檔案*.toolchain.cmake,內容如下

#指定交叉編譯器路徑

set(toolschain_path "/home/mc/toolschain/")

set(toolchain_host "$usr/bin/arm-linux")

#cmake_sysroot只有在3.0以上的版本才有效

set(cmake_sysroot "$/sysroot")

#set(sysroot_path"$/sysroot")

#message(status "using sysroot path: $")

#set(cmake_c_flags "$ --sysroot=$" cache internal "" force)

#set(cmake_c_link_flags "$ --sysroot=$" cache internal "" force)

#set(cmake_cxx_flags "$ --sysroot=$" cache internal "" force)

#set(cmake_cxx_link_flags "$ --sysroot=$" cache internal "" force)

set(toolchain_cc "$-gcc")

set(toolchain_cxx "$-g++")

#告訴cmake是進行交叉編譯

set(cmake_crosscompiling true)

# define name of the target system

set(cmake_system_name "linux")

# define the compiler

set(cmake_c_compiler $)

set(cmake_cxx_compiler $)

#庫和同標頭檔案查詢的路徑。

set(cmake_find_root_path "$" "$" "$")

# search for programs in the build host directories

set(cmake_find_root_path_mode_program never)

# for libraries and headers in the target directories

set(cmake_find_root_path_mode_library only)

set(cmake_find_root_path_mode_include only)

set(cmake_find_root_path_mode_package only)

# configure boost and qt

set(qt_qmake_executable /opt/qt-embedded/qmake)

set(boost_root /opt/boost_arm)

cmake指定交叉編譯

新建檔案arm.cmake,內容如下 指定嵌入式系統的編譯輸出目錄 set sysroot path home suka out system 指定交叉編譯器路徑 set toolschain path home suka toolschain set toolchain host usr bin ...

cmake指定交叉編譯

新建檔案arm.cmake,內容如下 指定嵌入式系統的編譯輸出目錄 set sysroot path home suka out system 指定交叉編譯器路徑 set toolschain path home suka toolschain set toolchain host usr bin ...

cmake交叉編譯

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