Android NDK如何正确包含库,头文件

时间:2017-11-18 21:16:47

标签: android c++ cmake android-ndk ndk-build

我刚刚开始掌握使用Android的NDK。

我正在尝试包含库头文件,因此将第三方库编译为我项目的依赖项。

但是我无法包含图书馆,我觉得我做错了。

我的项目结构

jni
--mylib.cpp
--CMakeLists.txt
----libs
------firpm_d
--------CMakeLists.txt
--------src
--------include
----------firpm
------------pm.h

我的 CMakeLists.txt 如下所示

# Cmake Minimum Version
cmake_minimum_required(VERSION 3.4.1)
project(MyLib)

# Add libraries

FOREACH(subdir ${SUBDIRS})
  ADD_SUBDIRECTORY(${subdir})
ENDFOREACH()

add_library(mylib SHARED
            mylib.cpp)

# Link
target_link_libraries(
            mylib
            android
            log)

在我的mylib.cpp文件中,我包括第三方lib,如下所示

#include "lib/firpm_d/include/firpm/pm.h"

但是当我尝试编译它时会给我一个错误

Error:(25) undefined reference to 'firpm(unsigned int, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, double, int)'

也许我需要设置LOCAL_C_INCLUDES,但我还没有找到任何有关如何使用新构建工具和CMake执行此操作的信息

顺便说一下,Android Studio并没有强调任何一行是有问题的。

如果有任何帮助或建议,我将不胜感激。

0 个答案:

没有答案