JNI--初步认识CMake

如何去在android应用jni我这里就不说明了。
这里主要来记录一些基本操作:

CMakeLists.txt:

add_library:将cpp文件编译成so动态库的语法
find_library:查找so动态库;在安卓系统中去查找,查看安卓种log一个库,把它命名成log-lib
target_link_libraries:作用就是一个so动态库关联的一个语法;比如把native-lib.cpp 编译成native-lib的so文件,那我们需要关联安卓log打印的一个库

在CMake里面注意到:${log-lib}。这个美元符号和一个大括号,这是CMake里面变量的使用

-------------------------------------------------------------------------------------------------------------------
注意的是:如果要进行下面操作,就得在配置文件中切换CMake的版本。因为3.10.2版本不会将信息打印出来。这里我切换为了3.6.0。每次打印都需要将app目录下的.cxx金额build文件删掉,重新运行才能看到打印结果
    CMake使用变量的话,使用的是set(var hello),里面是变量名和变量值。不区分大小写

    message(S{var})相当于log打印,会输出变量的值

    include_directories(people/):将people文件夹下的所有内容放进搜素路径中

    这两个以后都会挺常用的(打印CMake的当前路径和文件夹路径):
    message(${CMAKE_CURRENT_LIST_FILE})
    message(${CMAKE_CURRENT_LIST_DIR})

同时CMake还提供了逻辑操作:
    例如:
        IF(TRUE)
            message("Hello")
        ENDIF()

-------------------------------------------------------------------------------------------------------------------
实践练习:
    1,在cpp文件创建一个文件夹,名为:people,再创建一个cpp类,命名为People
    2,之后我们想法People这个类编译成安卓上的一个动态库
    3,需要的操作:需要CMake里面 add_library 的操作,将我们对应的c++文件编译成库。其中SHARED指的就是编译成动态库,也可以改为STATIC(静态库)
        例如;add_library(
        			//设置so文件的名称
        		   people-lib
                   SHARED
                   //so文件的相对路径
                   people/people.cpp)
    4,用native关联people。在target_link_libraries 加一行people-lib
    5,在.cpp文件中,编写一个函数返回string。在.h文件中创建一个类,写一个方法调用cpp文件的函数,得到string
    6,在native-lib.cpp中创建.h类对象。类对象调用方法获得string显示在屏幕上

实践练习操作:

people.cpp

#include "People.h"

std::string People::
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值