经常会需要在android上执行自己编写的一些没有UI的命令行测试工具,就要自己手动编译,其实很简单,只要将

管理cpp代码的CMakefile.txt文件,作简单修改即可。

新建NDK工程

        我使用的是最新的 Android Studio 3.3.1版本,新建工程的模板和之前的有些差别,但相信大家应该都能找到,如下

在Android Studio上编译C++可执行程序

给C++源码添加main()入口函数

        由于新建工程默认是让C++源码编译成动态库的,我们要编译成可执行文件,必然要增加一个main入口函数,如下

在Android Studio上编译C++可执行程序

修改CMakefile.txt工程文件

            主要将add_library()方法,替换为

修改前:

在Android Studio上编译C++可执行程序

修改后:

在Android Studio上编译C++可执行程序

syncbuild,生成可执行文件在如下目录中

在Android Studio上编译C++可执行程序

增加动态库、静态库

        想要链接库,也是修改CMakefile.txt文件,把它当作是普通的cmake工程就可以了,只是在这里能够多一些可使用的变量而已,

在这里,我是这样子改的,

1. 添加 abiFilters 

        由于添加的库可能只支持部分CPU架构的,于是就要把不支持的剔除,在主build.gradledefaultConfig中添加abiFilters 

在Android Studio上编译C++可执行程序

2. 添加jniLibs目录

        在cpp目录所在的目录中添加jniLibs目录,再在里面存放各个cpu架构的库文件

在Android Studio上编译C++可执行程序

3. CMakefile.txt文件中添加库链接

    修改CMakefile.txt文件,如下

在Android Studio上编译C++可执行程序

        最后sync、build即可。

相关文章:

  • 2021-04-21
  • 2021-12-19
  • 2021-12-19
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-30
  • 2021-04-17
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
  • 2021-06-27
  • 2022-12-23
相关资源
相似解决方案