如何解决无法在armeabi-v7a中隐藏出口
这是我的CMakeLists.txt:
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
set(sources ...)
set(includes ...)
add_library(mylib SHARED ${sources})
include_directories(${includes})
find_library(log-lib log )
target_link_libraries(test ${log-lib} )
当我成功编译我的库时,当我运行file
时,它说库已被剥离。我已将以下属性用于全局变量:
__attribute__((visibility("hidden"))
但这似乎并不影响armeabi-v7a。我仍然在armeabi-v7a的库导出符号表中看到它们。有什么我可以隐藏的吗?
解决方法
已解决:
@rprichard于2019年2月19日发表评论
看起来与 https://bugs.llvm.org/show_bug.cgi?id=39413 /#829。A
打开 GlobalMerge优化,无法保持可见性 变量上的属性。将
-Oz
添加到标志中是一种解决方法
来源-https://github.com/android/ndk/issues/913#issuecomment-465357660
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。