該環境變數主要用於cmake編譯時,通過獲取環境變數的值來判斷取鏈結哪些庫等作用.因為環境變數是系統中程序共享的資料.
如:
export cross_compiling_type =
"arm_platform"
該檔案主要是對進行交叉編譯時,所使用的交叉編譯工具鏈的說明,所謂交叉編譯工具鏈就是我們要生成目標平台的可執行檔案或這庫時用到的編譯鏈結工具的集合.
該檔案中我們會定義很多變數,包括編譯工具的路徑,所用到的庫的引用路徑,所用到的標頭檔案的包含路徑等資訊,cmake會交這些所有變數儲存下來,在之後的cmakelists.txt中就可以引用這些變數了.
在這裡簡單的羅列幾條,一般這個檔案由sdk提供方提供:
set(cmake_cxx_compiler sdk_path_name/g++)
....
..set(cmake_find_root_path_mode_program never)
set(cmake_find_root_path_mode_library only)
set(cmake_find_root_path_mode_include only)
cmake -dcmake_toolchain_file = path_of_.***.cmake cmake_path/
//編譯時加-d選項
add_definitions(
"-darm_code"
)
然後根據環境變數的值判斷當前編譯的是哪個平台的**,應當去鏈結什麼庫.例如:cmakelists.txt中
if(
$env
matches "arm_platform"
) target_link_libraries(
...)
else(
) target_link_libraries(
...)
endif(
)
寫**是對於不同平台實現時**以及**引用的標頭檔案也不一樣,所以我們一般用巨集開關
#ifdeine arm_code
#include
#else
#include
#endif
ubuntu mtd utils交叉編譯過程
1,zlib 2,lzo 3,e2fsprogs 先安裝依賴庫 1,解壓zlib檔案,執行3條命令 cc arm linux gcc configure host arm linux prefix 生成的路徑 make make install 2 安裝lzo同zlib一樣,也是三條命令 3 安裝e...
交叉編譯基本術語
在交叉編譯中,三個術語非常重要 host,target,build host 你編譯好的程式可以執行的平台 build 你正在使用的機器型別 target 你編譯的程式可以處理的平台 目前理解和toolchain有關係,比如你要編譯個arm gcc,讓你交叉編譯成的arm gcc可以生成arm平台可...
Frp交叉編譯過程記錄
相比gcc,go語言的交叉編譯超乎想象的簡單,直接安裝go語言編譯器,預設安裝即可.goarch arm goos linux cgo enabled 0 其中goarch代表處理器,goos代表系統平台.cgo enabled是是否啟動cgo.交叉編譯裡面一般不啟用即可.我這裡屬於用在arm開發板...