CMAKE_TOOLCHAIN_FILE

Posted cristiano-duan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMAKE_TOOLCHAIN_FILE相关的知识,希望对你有一定的参考价值。

CMAKE_TOOLCHAIN_FILE

CMAKE给交叉编译预留了一个变量CMAKE_TOOLCHAIN_FILE,它定义了一个.cmake文件的路径,该文件里面设置了一系列CMAKE变量和属性,比如C_COMPILER,CXX_COMPILER等。.cmake文件的好处是一次编写多次使用,不同平台架构的交叉编译工具链可以编写一个独立的toolchain.cmake文件,而工程的CMakeLists.txt可以编写为通用格式,对工具链不可见。cmake脚本可以如下形式:

cmake -DCMAKE_TOOLCHAIN_FILE=../depneds/toolchains/ndk64-toolchain.cmake .. && make
cmake -DCMAKE_TOOLCHAIN_FILE=../depends/toolchain/ndk32-toolchain.cmake .. && make

toolchain.cmake demo

set(CMAKE_SYSTEM_NAME android)

set(CMAKE_ANDROID_API 21)
set(CMAKE_ANDROID_ARCH_ABI aarch64)
set(CMAKE_ANDROID_STL_TYPE gnustl_static)

set(TOOLCHAIN_PATH /opt/sdk/android-aarch64)
# set(ANDROID_LIB_PATH ${TOOLCHAIN_PATH}/sysroot/usr/lib)

set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/aarch64-linux-android-gcc)
set(CMAKE_C_FLAGS "-D__ANDROID_API__=21  -fno-exceptions -O2 -fpie -fpic -fPIE -fPIC -pie -lm -Wl,-llog" CACHE STRING "" FORCE)

set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/aarch64-linux-android-g++)
set(CMAKE_CXX_FLAGS "-D__ANDROID_API__=21 -DANDROID_STL=gnustl_static -fno-exceptions -O2 -fpie -fpic -fPIE -fPIC -pie -std=c++11 -lm -lstdc++ -Wl,-llog" CACHE STRING "" FORCE)

以上是关于CMAKE_TOOLCHAIN_FILE的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器