步驟需要include open source 的時候,有兩種常見的cross compile 的設定方式:
cmake 有公開標準,比較容易自行擴充到不同的平台上
makefile + configure
all output bin , lib … 所有要編出來的產物與link方式
有一套cmake語法,與 gnu make 不同
大部分支援cmake cross compile 的lib 都會附cmakelist,如果需要自行撰寫請參考 教學
cmakelist.txt 可以產生指定目標平台的 makefile,或者直接將所需output 用 cmake 編譯出來 or both
cross compile for target platform 相當於 ./configure cc= --prefix==《安裝路徑》…等等這種設定
optional add variables for install path, compile in release mode
example for arm-***x-linux platform
set(cmake_system_name linux)
set(cmake_system_processor arm)
set(cmake_sysroot /tools/arm/arm-***x-linux-gnueabi/arm-augentix-linux-gnueabi/sysroot)
set(cmake_staging_prefix ) << 這是安裝路徑,請自訂
set(tools /tools/arm/arm-***x-linux-gnueabi)
set(cmake_c_compiler $/bin/arm-***x-linux-gnueabi-gcc)
set(cmake_cxx_compiler $/bin/arm-***x-linux-gnueabi-g++)
set(cmake_c_flags_release "$ -s")
set(cmake_cxx_flags_release "$ -s")
set(cmake_find_root_path_mode_program never)
set(cmake_find_root_path_mode_library only)
set(cmake_find_root_path_mode_include only)
set(cmake_find_root_path_mode_package only)
check cmakelist.txt exist
go to cmakelist.txt path
create toolchain.cmake for target
$ cmake -dcmake_build_type=release -dcmake_toolchain_file=
cmake交叉編譯
1 設定交叉編譯之前,必須在 cmakelist.txt 前面加上這樣一句,這樣 cmake 才會認為你是要交叉編譯 set cmake system namelinux 其中linux 是要編譯過去的平台,如果你是在 linux 下交叉編譯 window 的東西,就要寫成 windows 了。我是...
CMake交叉編譯配置
很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程式。裡面牽扯到相關標頭檔案的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關cmake在面對交叉編譯的時候,需要做的一些準備工作。cmake給交叉編...
CMake之交叉編譯
一 引言 很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程式。裡面牽扯到相關標頭檔案的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關cmake在面對交叉編譯的時候,需要做的一些準備工作。二 cm...