链接Android中的预构建静态库
I generated a static library from macos terminal with `ar rcs libws.a libws.o`
I have tested it with my own test program and everything works fine.
Now I would like to include the static library in android, but I have a build time error.
This is my cmake file
cmake_minimum_required(VERSION 3.10.2)
add_library(
libws
STATIC
IMPORTED)
set_target_properties(libws
PROPERTIES
IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jniLibs/libws/libws.a)
add_library(
native-lib
SHARED
native-lib.cpp
)
target_include_directories(native-lib PRIVATE
${CMAKE_SOURCE_DIR}/../jniLibs/libws/include
logger )
#include_directories(src/main/cpp/)
find_library(
log-lib
log)
target_link_libraries(
native-lib
libws
${log-lib})
这是构建错误
/src/main/cpp/../jniLibs/libws/libws.a -llog -latomic -lm -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/23/crtend_so.o
/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: src/main/cpp/../jniLibs/libws/libws.a: no archive symbol table (run ranlib)
是否有帮助?
I generated a static library from macos terminal with `ar rcs libws.a libws.o`
I have tested it with my own test program and everything works fine.
Now I would like to include the static library in android, but I have a build time error.
This is my cmake file
cmake_minimum_required(VERSION 3.10.2)
add_library(
libws
STATIC
IMPORTED)
set_target_properties(libws
PROPERTIES
IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jniLibs/libws/libws.a)
add_library(
native-lib
SHARED
native-lib.cpp
)
target_include_directories(native-lib PRIVATE
${CMAKE_SOURCE_DIR}/../jniLibs/libws/include
logger )
#include_directories(src/main/cpp/)
find_library(
log-lib
log)
target_link_libraries(
native-lib
libws
${log-lib})
This is the build error
/src/main/cpp/../jniLibs/libws/libws.a -llog -latomic -lm -Bstatic -lc++ -Bdynamic -lm -lgcc -ldl -lc -lgcc -ldl /Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/23/crtend_so.o
/Library/Android/sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: src/main/cpp/../jniLibs/libws/libws.a: no archive symbol table (run ranlib)
Any help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论