Я читал несколько потоков (и документов), включая библиотеки .so
с CMake, но мне не кажется, что я попал в ошибки, о которых я читал, а именно :CMake не находит .so library
- поставляет неправильное имя библиотеки
- указав неверный путь
Так что я делаю неправильно? Я работаю в Android Studio, и у меня есть файл cmake в моем каталоге app
. Он может найти некоторые вещи, но не .so файл в вопрос, чей путь:
app/src/main/cpp/libusb-android-open2/android/libs/armeabi/libusb1.0.so
Вот мой CMake файл:
# This succeeds
add_library(demo-libusb SHARED src/main/cpp/demo-libusb.cpp)
# This succeeds
find_library(log-lib log)
if (log-lib)
message(WARNING "HAS loglib") # This message gets printed
else(log-lib)
message(SEND_ERROR "NO loglib")
endif(log-lib)
# This fails
link_directories(src/main/cpp/libusb-android-open2/android/libs/armeabi)
find_library(usb-lib NAMES usb1.0 libusb1.0.so)
if (usb-lib)
message(WARNING "HAS libusb")
else(usb-lib)
message(SEND_ERROR "NO libusb") # This message gets printed
endif(usb-lib)
Я также попытался:
find_library(usb-lib NAMES libusb1.0.so usb1.0 PATHS
src/main/cpp/libusb-android-open2/android/libs/armeabi
src/main/cpp/libusb-android-open2/android/libs/armeabi-v7a
)
Вы прочитали эту статью (статья wiki wiki) (https://cmake.org/Wiki/CMake:How_To_Find_Libraries#Using_external_libraries_that_CMake_doesn.27t_yet_have_modules_for), не так ли? – agg3l
@ agg3l: Я просмотрел это, но, возможно, вы могли бы немного разъяснить, так как я не понимаю, как действовать дальше? Во-первых, я не работаю с пакетом, но с файлом '.so', который мне пришлось перекрестно скомпилировать. Во-вторых, можете ли вы сказать мне, что означает «LibXML ++ _ LIBRARIES»? Предполагается, что это каталог? Список файлов .so'? – JellicleCat
Работает ли find_library с абсолютными значениями для PATH? –