CMake交叉編譯

Android交叉編譯

準(zhǔn)備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

準(zhǔn)備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是非常重要的,只有設(shè)置了(比如目前的Android),CMake才會認(rèn)為是在做交叉編譯

編寫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 )

進(jìn)行交叉編譯

使用cmake-gui

設(shè)置好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的方式會出現(xiàn)

-- 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.

我自己需要把上述兩種方法做結(jié)合,先用cmake-gui來指定android_arm.cmake,然后在cmd下執(zhí)行,這樣才不會有問題,目前還不知道要如何解決此問題(單獨(dú)使用cmake-gui也是不過的,必須兩種結(jié)合使用)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在命令行下用CMake交叉編譯可在android中運(yùn)行的so包 最近在寫一個通過錄屏生成gif的小應(yīng)用,由于要用到...
    MingHuang1024閱讀 2,179評論 0 0
  • 交叉編譯簡介 簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。同一個體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng);同樣,...
    Pokerpoke閱讀 11,440評論 0 2
  • 羅列一下cmake常用的命令。 CMake支持大寫、小寫、混合大小寫的命令。 1. 添加頭文件目錄INCLUDE_...
    linux服務(wù)器開發(fā)閱讀 1,938評論 1 0
  • 向您的項目添加 C 和 C++ 代碼 本文內(nèi)容 下載 NDK 和構(gòu)建工具 創(chuàng)建支持 C/C++ 的新項目 構(gòu)建和運(yùn)...
    會飛的大象_閱讀 3,906評論 0 3
  • 第1章 事故 我只是一個普通人,后來之所以會走上‘煉尸尋人’這條路,完全是一種巧合。 接下來我要講述和記錄的事,看...
    乖乖小歪歪閱讀 566評論 0 0

友情鏈接更多精彩內(nèi)容