我已经阅读了关于使用CMake包含.so库的几个主题(和文档),但是在我看来,我并没有看到我已经读过的错误,即:CMake没有找到.so库
提供了不正确的库名
指定一个不正确的路径
那我有毛病做什么?我在Android Studio工作,并且在我的app目录中有一个cmake文件。它可以找到一些东西,但不是问题的.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
)
+0
您已阅读本文[CMake wiki文章](https://cmake.org/Wiki/CMake:How_To_Find_Libraries#Using_external_libraries_that_CMake_doesn.27t_yet_have_modules_for),不是吗? –
+0
@ agg3l:我已经看到了,但也许你可以澄清一点,因为我不清楚如何继续?首先,我不是在使用一个包,而是使用'.so'文件,我必须自己进行交叉编译。第二,你能告诉我“LibXML ++ _ LIBRARIES”的含义是什么吗?它应该是一个目录吗? '.so'文件的列表? –
+0
find_library是否使用PATH的绝对值? –