与NDK捆绑在一起的cmake是默认使用的cmake,但它定义了很多选项。其中之一是 -
elseif(ANDROID_STL STREQUAL gnustl_shared)
set(ANDROID_STL_STATIC_LIBRARIES
supc++)
set(ANDROID_STL_SHARED_LIBRARIES
gnustl_shared)
现在,我想使用gnustl_shared,但没有supc ++,我无论如何都找不到它。从android.toolchain.cmake手动删除它对我有用。 但我不想在每台机器上编辑ndk工具链cmake文件。 在我的应用程序的cmakelists.txt中,我尝试了
list(FILTER ANDROID_STL_STATIC_LIBRARIES EXCLUDE REGEX ".*supc.*")
list(FILTER CMAKE_CXX_STANDARD_LIBRARIES_INIT EXCLUDE REGEX ".*supc.*")
但每次,在生成的build.ninja文件中,我都会在LINK_LIBRARIES中看到libsupc ++。a。
链接时是否有一种干净的方法可以排除这个lib?
答案 0 :(得分:2)
将我的评论转化为答案
当我查看android.toolchain.cmake
时,我发现ANDROID_STL_STATIC_LIBRARIES
已转移到用于ANDROID_CXX_STANDARD_LIBRARIES
的{{1}}。
所以我修改后来应该解决你的问题。但这不是一个列表,它的空间是分开的,你应该这样做:
CMAKE_CXX_STANDARD_LIBRARIES
<强>参考强>