Android 安卓CMake。make.so时如何编译single.h和.hpp?

Android 安卓CMake。make.so时如何编译single.h和.hpp?,android,c++,cmake,java-native-interface,Android,C++,Cmake,Java Native Interface,我正在尝试在android Studio中使用CMake为我的android应用程序构建.so库。CMakeLists.txt文件如下所示: cmake_minimum_required(VERSION 3.4.1) file(GLOB CORE_SOURCES "src/main/cpp/ine/Core/*.cpp") file(GLOB CORE_HEADERS "src/main/cpp/ine/Core/*.hpp") file(GLOB LA256_SOURCES "src/mai

我正在尝试在android Studio中使用CMake为我的android应用程序构建.so库。CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 3.4.1)

file(GLOB CORE_SOURCES "src/main/cpp/ine/Core/*.cpp")
file(GLOB CORE_HEADERS "src/main/cpp/ine/Core/*.hpp")
file(GLOB LA256_SOURCES "src/main/cpp/ine/Geometry/*.cpp")
file(GLOB LA256_HEADERS "src/main/cpp/ine/Geometry/*.hpp")
file(GLOB PLATFORMS_SOURCES "src/main/cpp/ine/Platforms/*.cpp")
file(GLOB PLATFORMS_HEADERS "src/main/cpp/ine/Platforms/*.hpp")


add_library( naive-lib
             SHARED

             src/main/cpp/GEngine/Platforms/com_giena_apptest_ine.h
             ${CORE_SOURCES}
             ${CORE_HEADERS}
             ${GEOMETRY_SOURCES}
             ${GEOMETRY_HEADERS}
             ${PLATFORMS_SOURCES}
             ${PLATFORMS_HEADERS}
             )

find_library( 
              log-lib
              log )


target_link_libraries( native-lib
                       android
                       EGL
                       GLESv2
                       ${log-lib} )
带有.hpp和.h文件的.cpp、.c组合良好,但单个.hpp和.h(相应地没有.cpp和.c)组合不好


那么,如何将单个.hpp和.h文件包含到.So中呢

这些是头文件,你不应该编译它们。嗯…那么,在头文件中的C++模板是什么?HPP?模板将被内嵌到使用它们的代码中。实际上,可以将这些模板的某些实例化编译到共享库中,但这需要一些额外的工作,而且在您的情况下很可能不需要。好的,谢谢,我理解。但是,当我通过javah util为java类生成jni函数时,我需要做什么呢。这是一个.h文件。我需要为它写一个.c文件吗?问题结束。谢谢。这些是头文件,你不应该编译它们。嗯……那么,C++文件模板是什么呢?在头文件中的HPP?模板将被内嵌到使用它们的代码中。实际上,可以将这些模板的某些实例化编译到共享库中,但这需要一些额外的工作,而且在您的情况下很可能不需要。好的,谢谢,我理解。但是,当我通过javah util为java类生成jni函数时,我需要做什么呢。这是一个.h文件。我需要为它写一个.c文件吗?问题结束。非常感谢。