用cmake和无效的sh_info编译在符号表中

发布于 2025-01-22 17:18:38 字数 477 浏览 1 评论 0 原文

抱歉,英语

克隆并在Android Studio中编辑了这个项目: https://github.com/pangue-mimmortal/pangue-immortal/keepaliveperpect/ekeepaliveperfect/

在编译期间,以下错误(使用NDK 24.0.8215888):

KeepAlivePerfect/library/src/main/cpp/binder_libs/armeabi-v7a/libbinder.so: invalid sh_info in symbol table

在Linux和Windows中都进行了测试。相同的错误。

请帮助

sorry bad english

cloned and compiled this project in Android Studio:
https://github.com/Pangu-Immortal/KeepAlivePerfect/

During compile, got the following error (using ndk 24.0.8215888):

KeepAlivePerfect/library/src/main/cpp/binder_libs/armeabi-v7a/libbinder.so: invalid sh_info in symbol table

tested both in linux and windows. Same error.

plz help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蒗幽 2025-01-29 17:18:38

最后,可以通过更改共享 static 中的 cmakelists.txt 中的编译。还有更多配置。

以下是更改:

# Sets the minimum version of CMake required to build the native library.

cmake_minimum_required(VERSION 3.4.1)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/)

add_compile_options(-fno-rtti -O3 -v)

message(@@@${CMAKE_CURRENT_SOURCE_DIR})

link_directories(binder_libs/${CMAKE_ANDROID_ARCH_ABI})

aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件

add_library( # Sets the name of the library.
        keep_alive

        # Sets the library as a shared library.
        STATIC # Changed from SHARED to STATIC

        # 提供源文件的相对路径。
        ${SRC_LIST} main.cpp art.cpp)

# More Config
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libutils.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libc.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libcutils.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libutils.so)
# The END

find_library(log-lib log)

target_link_libraries(
        keep_alive
        ${log-lib}
)

主要项目中问题中的更多信息:

Finally could compile with changing SHARED to STATIC in CMakeLists.txt. And some more config.

Here are the changes:

# Sets the minimum version of CMake required to build the native library.

cmake_minimum_required(VERSION 3.4.1)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/)

add_compile_options(-fno-rtti -O3 -v)

message(@@@${CMAKE_CURRENT_SOURCE_DIR})

link_directories(binder_libs/${CMAKE_ANDROID_ARCH_ABI})

aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件

add_library( # Sets the name of the library.
        keep_alive

        # Sets the library as a shared library.
        STATIC # Changed from SHARED to STATIC

        # 提供源文件的相对路径。
        ${SRC_LIST} main.cpp art.cpp)

# More Config
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libutils.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libc.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libcutils.so)
set_target_properties(keep_alive PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/binder_libs/${ANDROID_ABI}/libutils.so)
# The END

find_library(log-lib log)

target_link_libraries(
        keep_alive
        ${log-lib}
)

More information in an issue in main project:
https://github.com/Pangu-Immortal/KeepAlivePerfect/issues/8#issuecomment-1107427875

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文