C++工程(五):CMake+NDK交叉编译

Android-NDK: 安卓-原生开发工具包

  • 写一个Hello World
#include <iostream>

using namespace std;

int main(int argc, const char *argv[]) {
    for(int i=0; i<5; i++) {
        std::cout << "Hello: " << i << std::endl;
    }
}
  • android_ndk_build.sh编译脚本
#/bin/bash

export ANDROID_NDK=/PATH/TO/ANDROID-NDK/android-ndk-r25c/

rm -rf build
mkdir build && cd build

cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
      -DANDROID_ABI="arm64-v8a" \
      -DANDROID_NDK=$ANDROID_NDK \
      -DANDROID_PLATFORM=android-22 \
      ../

make
#make && make install

cd ..

  • 移动端运行

    • 将生成的可执行文件push至/data/local/tmp目录:adb push <exe_file> /data/local/tmp/test
    • chmod +x <exe_file> 赋予可执行权限
    • 运行结果如下:

参考:https://blog.csdn.net/qq_38410730/article/details/103622813

Android NDK + OpenCV: https://stackoverflow.com/questions/54967251/how-can-i-integrate-opencv-4-0-into-a-pure-c-android-ndk-project

posted @   达可奈特  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示