cmake使用总结

设置输出路径:


使用三方so
set(SDK_JNILIBS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/) //获取jniibs的路径
link_directories(${SDK_JNILIBS_PATH}) //设置连接路径(到jniLibs)
add_library(DBoW2 SHARED IMPORTED) //添加一个新的连接library
//设置新的连接library的具体内容
set_target_properties(DBoW2 PROPERTIES IMPORTED_LOCATION
        ${SDK_JNILIBS_PATH}/${CMAKE_ANDROID_ARCH_ABI}/libDBoW2.so)
target_link_libraries(
    xxx
    ${DBoW2} //连接到工程
    xxx
}

android设置平台和编译版本:
    externalNativeBuild {
            cmake{
                cppFlags "-frtti -fexceptions -std=gnu++11 -std=c++11 -DFFCMD -DGL_GLEXT_PROTOTYPES=1 -D__STDC_CONSTANT_MACROS"
                cppFlags "-DCONFIG_LIBJPEG_TURBO"
                cFlags "-DFFCMD -DANDROID_ABI=armeabi-v7a"
                abiFilters 'armeabi-v7a'
            }
        }



报错:
cmake android_native_app_glue.h‘ file not found

添加头文件:
set(ANDROID_NATIVE_APP_GLUE ${ANDROID_NDK}/sources/android/native_app_glue)

添加静态库     参考:https://developer.android.com/studio/projects/configure-cmake

add_library( app-glue
             STATIC
             ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )

# You need to link static libraries against your shared native library.
target_link_libraries( native-lib app-glue ${log-lib} )

两种方式都无效后,又加了一句:

set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值