前言

NumCpp库是C++版的Numpy,网上大部分资料讲的都是如何在Visual studio中实现NumCpp的安装和调用。本文根据自己的探索和分析,讲述如何实现在Android studio中调用Numcpp等第三方C++库。

环境:

win10

准备工作:

1、安装Git:参考:git - 简易指南 2、下载Boost库。NumCpp库的运行依赖Boost库。在Android studio中,不需要像在VisualStudio中那样配置,直接下载下来后解压放到工程对应目录即可。VisualStudio中使用Boost库,可参考:【C++】boost库安装及配置说明。

下载NumCpp

1、创建新文件夹,打开,然后执行

git init

以创建新的 git 仓库。
2、检出NumCpp仓库:
在文件夹中右键–》Git Bash here,在弹出的窗口输入:

git clone https://github.com/dpilger26/NumCpp

即可开始仓库下载过程。注意上述命令要用手输,复制粘贴到黑窗口会报错: command not found!!

android 调试 cpp 安卓运行cpp_git


克隆完成后,回到刚新建的文件夹就会看到克隆下来的NumCpp库。include文件夹就是我们在工程中要用到的NumCpp库。

android 调试 cpp 安卓运行cpp_Android_02

在工程中配置NumCpp库

1、 以Project方式显示工程,将include文件夹、Boost库复制到工程中\app\src\main目录下。确保include文件夹和Boost库与cpp、java文件夹在同一级目录。

android 调试 cpp 安卓运行cpp_Android_03

2、配置app中的Cmakelist.txt文件:
Cmakelist.txt是项目的编译文件,Gradle会根据Cmakelist.txt文件中的内容对app进行编译,因此需要在Cmakelist.txt中将Numpp和Boost库的所在路径加入到项目搜索路径中。 在该文件中加入如下语句:

INCLUDE_DIRECTORIES (include文件夹在电脑中的绝对位置)
INCLUDE_DIRECTORIES (boost_1_72_0文件夹在电脑中的绝对位置)

3、调用NumCpp库中对象和函数试下。

将native-lib.cpp文件修改成如下:

android 调试 cpp 安卓运行cpp_android 调试 cpp_04


nc命名空间即是使用了Numcpp库。

4、运行工程,结果如下所示:

android 调试 cpp 安卓运行cpp_Android_05


总之,Android Studio中调用第三方C++库的关键在于将库的源码放到工程中main文件夹下,然后在Cmakelist.txt编译文件中将库包含到工程的库搜索目录中。

参考:NumCpp安装文档Android Studio Cmake编写问题,求大神赐教