美文网首页
CMake交叉编译

CMake交叉编译

作者: peterzen | 来源:发表于2019-07-29 14:59 被阅读0次

Android交叉编译

准备Android Toolchain

这里我们需要的是Android Standalone的toolchain,生成方法可以参考
Mastering Android NDK Build System - Part 1: Techniques with ndk-build
Mastering Android NDK Build System - Part 2: Standalone toolchain

准备cross-compiling的toolchain file

编写android_armv7a.cmake

# this is required
set( CMAKE_SYSTEM_NAME Android )

# specify the cross compiler
set( CMAKE_ANDROID_ARCH_ABI armeabi-v7a )
set( CMAKE_ANDROID_ARM_NEON ON )
set( CMAKE_ANDROID_STANDALONE_TOOLCHAIN d:/project/WifiCam/WificamSDK/tool/toolchain/arm)

注意,第一个set的CMAKE_SYSTEM_NAME是非常重要的,只有设置了(比如目前的Android),CMake才会认为是在做交叉编译

编写CMakeLists.txt

按照正常情况编写好CMakeLists.txt

cmake_minimum_required( VERSION 3.7 )
project( speexdsp )

set( SPEEXDSP_FLAGS "-DFIXED_POINT -DUSE_KISS_FFT -DEXPORT=\"\" -UHAVE_CONFIG_H" )
set( CMAKE_C_FLAGS ${SPEEXDSP_FLAGS} )
set( CMAKE_CXX_FLAGS ${SPEEXDSP_FLAGS} )

set( speexdsp_src src1.c src2.c )

include_directories( header_dir1 header_dir2 )

add_library( speexdsp SHARED ${speexdsp_src} )
target_link_libraries( speexdsp log )

进行交叉编译

使用cmake-gui

设置好source codebuild dir后, Configure的时候,需要选择第三个选项


然后下一步,指定我们在第二步编写好的android_arm.cmake
然后再Generate就可以了

使用cmake cmd

cd build
cmake ../src -DCMAKE_TOOLCHAIN_FILE=/d/config/android_arm.cmake

在我自己的Windos7上,如果使用cmake cmd的方式会出现

-- Building for: Visual Studio 14 2015
CMake Error at CMakeLists.txt:1 (project):
  CMAKE_SYSTEM_NAME is 'Android' but 'NVIDIA Nsight Tegra Visual Studio
  Edition' is not installed.

我自己需要把上述两种方法做结合,先用cmake-gui来指定android_arm.cmake,然后在cmd下执行,这样才不会有问题,目前还不知道要如何解决此问题(单独使用cmake-gui也是不过的,必须两种结合使用)

相关文章

  • cmake使用

    tags: 嵌入式categories: 开发 cmake 总结 交叉编译 设置编译器CMAKE_FORCE_C_...

  • CMake交叉编译

    Android交叉编译 准备Android Toolchain 这里我们需要的是Android Standalon...

  • CMake交叉编译配置

    罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。 1. 添加头文件目录INCLUDE_...

  • Cmake使用语法解析

    Cmake工具 cmake 交叉编译系统生成工具 ctest 自动化测试工具 cpack 自动化打包工具 可...

  • 认识Android.mk和Application.mk

    NDK开发可以使用cmake进行交叉编译,或者使用原生的ndk-build进行编译下面笔者从书中《Android ...

  • 7.CMake交叉编译

    交叉编译简介 简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,...

  • CMake——交叉编译 包装器

    xzhuan原创稿件,转载请注明出处! 介绍 CMake使用实用工具链来编译,链接库和创建存档,以及其他任务来驱动...

  • cmake交叉编译参数toolchain

    因为嵌入式开发,我接触的都是交叉编译。即编译好的可执行程序并不是在本机运行,而是在目标机上跑。因此,我在使用cma...

  • my cross-compile

    告知当前使用的是交叉编译方式,必须配置 SET(CMAKE_SYSTEM_NAME Linux)SET(TOOLC...

  • 海思平台配置toolchain.cmake

    交叉编译,在我们的host宿主机器上需要生成target目标机器的程序, 使用CMake的Toolchain管理这...

网友评论

      本文标题:CMake交叉编译

      本文链接:https://www.haomeiwen.com/subject/jzybrctx.html