美文网首页
NDK开发之Cmake常用语法(持续补充)

NDK开发之Cmake常用语法(持续补充)

作者: 呵呵_9e25 | 来源:发表于2019-05-15 09:52 被阅读0次

    1.编译多个cpp文件到一个so库

    cmake_minimum_required(VERSION 3.4.1)
    #修改编译源文件目录
    file(GLOB native_srcs "${CMAKE_SOURCE_DIR}/src/main/cpp/hello/*.cpp")
    add_library(helloNDK SHARED  ${native_srcs})
    find_library(log-lib log)
    target_link_libraries(helloNDK ${log-lib})
    

    关键就在注释那里,通过 file命令声明了一个文件路径变量,然后在add_library直接用${名字}直接访问就行
    2.添加子目录的cmakeLists编译路径

    #获取所有CMakeLists.txt所在子目录
    file(GLOB subdir "${CMAKE_SOURCE_DIR}/src/main/cpp/*")
    #通过for循环获取每个子目录添加到编译
    foreach (dir ${subdir})
        ADD_SUBDIRECTORY(${dir})
    endforeach ()
    

    我的项目目录如下

    image.png
    每个目录下都有对应的CMakeLists.txt,这样就能输出三个so文件
    image.png
    我改一下代码打印一下三个路径,注意我们用message( FATAL_ERROR "exit")让程序停止才能看到日志,代码如下
    #获取所有CMakeLists.txt所在子目录
    file(GLOB subdir "${CMAKE_SOURCE_DIR}/src/main/cpp/*")
    #通过for循环获取每个子目录添加到编译
    message("---------1----------")
    foreach (dir ${subdir})
        message( ${dir})
    endforeach ()
    message("----------2---------")
    message( FATAL_ERROR "exit")
    

    效果图如下


    image.png

    相关文章

      网友评论

          本文标题:NDK开发之Cmake常用语法(持续补充)

          本文链接:https://www.haomeiwen.com/subject/xpwsaqtx.html