【问题标题】:CMake script ignores CMAKE_ANDROID_ARCH_ABI, always builds armeabiCMake 脚本忽略 CMAKE_ANDROID_ARCH_ABI,始终构建 armeabi
【发布时间】:2017-10-04 14:13:05
【问题描述】:

我正在使用适用于 Android 的 CMake ExternalLibrary 选项构建一个外部库 taglib。我已将CMAKE_ANDROID_ARCH_ABI 设置为x86,但构建始终会生成armeabi 共享库。为什么?

这是sn-p:

include(ExternalProject)

# taglib configuration
set(TAGLIB_VERSION 1.11.1)
set(TAGLIB_CHECKSUM "8624219ba50c77f17889af15e1ca5f7d")

ExternalProject_Add(
    taglib
    URL ${CMAKE_CURRENT_SOURCE_DIR}/external/taglib-${TAGLIB_VERSION}.zip
    URL_MD5 ${TAGLIB_CHECKSUM}
    CONFIGURE_COMMAND ${CMAKE_COMMAND}
                      ${CMAKE_CURRENT_BINARY_DIR}/taglib/src/taglib
                      -DCMAKE_SYSTEM_NAME=Android
                      -DCMAKE_ANDROID_API=${ANDROID_NATIVE_API_LEVEL}
                      -DCMAKE_ANDROID_ARCH_ABI=${ANDROID_ABI}
                      -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
                      -GUnix\ Makefiles
                      -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
                      -DBUILD_SHARED_LIBS=ON
                      -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/build/taglib/${ANDROID_ABI}

    PREFIX taglib
    INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install
                    &&
                    ${CMAKE_COMMAND} -E copy
                    ${CMAKE_CURRENT_BINARY_DIR}/build/taglib/${ANDROID_ABI}/lib/libtag.so
                    ${CMAKE_SUPERBUILD_OUT}/${ANDROID_ABI}/libtag.so
)

add_library(tag SHARED IMPORTED)
set_target_properties(tag PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/build/taglib/${ANDROID_ABI}/lib/libtag.so)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/build/taglib/${ANDROID_ABI}/include)

【问题讨论】:

  • 您可以发布您的build.gradle 文件吗?
  • 不使用 Gradle,使用独立构建。

标签: android cmake cross-compiling


【解决方案1】:

Android NDK 工具链文件不使用MAKE_ANDROID_ARCH_ABI,还必须在ExternalProject_Add 调用中指定ANDROID_ABI 标志。然后它为适当的拱门构建。

【讨论】:

  • 这解决了您的问题吗?如果是,请将您的答案标记为解决方案。我相信它可以通过在build.gradlecmake 块中添加filter 来解决。
  • 我没有使用 Gradle。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
相关资源
最近更新 更多