target_include_directories(nativelib PUBLIC /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/src/main/cpp /Users/bytedance/IntelliAlbumSDK/Biz/Android/xxx/build/bitsDepend/headerDir/)
编译没问题,但是最终在nativelib.so的链接过程中,找不到wcdb中的符号,例如sqlite3_open(),报错如下:
CMakeFiles/nativelib.dir/nativelib.cpp.o: In function Java_com_example_nativelib_NativeLib_stringFromJNI': /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/src/main/cpp/nativelib.cpp:15: undefined reference tosqlite3_open'
/Users/bytedance/Library/Android/sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/build/intermediates/cmake/debug/obj/arm64-v8a/libnativelib.so: hidden symbol `sqlite3_open' isn't defined
The language of WCDB
The version of WCDB
The platform of WCDB
The installation of WCDB
What's the issue?
动态库链接libwcdb.so,链接过程中找不到libwcdb.so的符号 我Cmake代码如下 ` cmake_minimum_required(VERSION 3.6)
set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_MACOSX_RPATH 1) set(CMAKE_CXX_STANDARD 17) project(nativelib LANGUAGES C CXX)
add_library(nativelib SHARED nativelib.cpp /Users/bytedance/IntelliAlbumSDK/Biz/Android/Jianying/libs/arm64-v8a/libwcdb.so)
target_include_directories(nativelib PUBLIC /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/src/main/cpp /Users/bytedance/IntelliAlbumSDK/Biz/Android/xxx/build/bitsDepend/headerDir/)
add_library(wcdb SHARED IMPORTED) set_property(TARGET wcdb PROPERTY IMPORTED_LOCATION "/Users/bytedance/IntelliAlbumSDK/Biz/Android/xxx/libs/arm64-v8a/libwcdb.so")
target_link_libraries(nativelib wcdb android log) `
编译没问题,但是最终在nativelib.so的链接过程中,找不到wcdb中的符号,例如sqlite3_open(),报错如下: CMakeFiles/nativelib.dir/nativelib.cpp.o: In function
Java_com_example_nativelib_NativeLib_stringFromJNI': /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/src/main/cpp/nativelib.cpp:15: undefined reference to
sqlite3_open' /Users/bytedance/Library/Android/sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: /Users/bytedance/IntelliAlbumSDK/Biz/Android/nativelib/build/intermediates/cmake/debug/obj/arm64-v8a/libnativelib.so: hidden symbol `sqlite3_open' isn't defined