如何在CmakeList中添加目标链接库.so和.a文件?

时间:2016-01-07 07:04:28

标签: android c++ cmake

我创建了一个cmake txt文件,我添加目标链接库进行链接。 Cmake看起来像这样..

    file(GLOB libs ${ANDROID_LIBS}/*.so) 
    file(GLOB libs_user ${ANDROID_LIBS}/*.a)
    add_library(${LIBRARY_NAME} SHARED ${SOURCE} ${SOURCE_JAVA} ${HEADERS} )
    target_link_libraries(${LIBRARY_NAME} ${libs} ${libs_user}) 

我有Android libs文件夹,我有所有.so和.a文件。 Cmake成功构建并创建了.so文件。但是当我测试时我有一个错误A / libc(18333):致命信号11(SIGSEGV)在0x01010000(代码= 1)

然后我将Cmakelist代码更改为

file(GLOB libs ${ANDROID_LIBS}/libopencv_java.so ${ANDROID_LIBS}/libcaffe.so)
  file(GLOB libs_user ${ANDROID_LIBS}/*.a)
  add_library(${LIBRARY_NAME} SHARED ${SOURCE} ${SOURCE_JAVA} ${HEADERS} )
  target_link_libraries(${LIBRARY_NAME} ${libs} ${libs_user}) 

这成功了。

我的问题是什么错误链接目标库无法链接(*。so)。当我硬编码.so文件时,它变得可运行。请证明......

1 个答案:

答案 0 :(得分:0)

符号冲突? how to link with two shared libraries with many conflicting functions

我不确定这是否与Android相关的东西有关...