Как добавить внешнюю библиотеку в андроид студии с помощью cmake? - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь связать файлы live555.so и .h с проектом Android с помощью cMake.Если я не использую абсолютный путь, я получаю ошибку.

Мой cMake файл:

cmake_minimum_required(VERSION 3.4.1)

include_directories( ${PROJECT_SOURCE_DIR}/src/main/jniLibs/live555/include )

add_library( live555 SHARED IMPORTED )

set_target_properties( live555 PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/src/main/jniLibs/live555/lib/${ANDROID_ABI}/live555.so)

add_library( # Sets the name of the library.
         native-lib

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
         src/main/cpp/native-lib.cpp )

find_library( # Sets the name of the path variable.
          log-lib

          # Specifies the name of the NDK library that
          # you want CMake to locate.
          log )

target_link_libraries( # Specifies the target library.
                   native-lib
                   android
                   live555
                   ${log-lib} )

И ошибка :

Ошибка: ошибка: '../../../../src/main/jniLibs/live555/lib/armeabi-v7a/live555.so', необходимая для '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so ', отсутствует и не известно ни одного правила, позволяющего его сделать

1 Ответ

0 голосов
/ 05 октября 2018

${PROJECT_SOURCE_DIR} - это каталог, в котором находится основной файл CMakeList.txt.Это обычно app / src / main / cpp .Теперь вы можете определить правильный относительный путь.

Это означает, что вы можете просто написать

include_directories( ${PROJECT_SOURCE_DIR}/../jniLibs/live555/include )

add_library( live555 SHARED IMPORTED )

set_target_properties( live555 PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/../jniLibs/live555/lib/${ANDROID_ABI}/live555.so)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...