我已經閱讀了關於使用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
)
您已閱讀本文[CMake 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的絕對值? –