CMake 使用 Android NDK 失败

问题描述 投票:0回答:1

我正在尝试使用 Android NDK 独立工具链构建一些东西。但是,我遇到了这些错误。

        CMake Warning at cmake/android.toolchain.cmake:387 (message):
      Using value of obsolete variable ANDROID_NDK_TOOLCHAIN_ROOT as initial
      value for ANDROID_STANDALONE_TOOLCHAIN.  Please note, that
      ANDROID_NDK_TOOLCHAIN_ROOT can be completely removed in future versions of
      the toolchain.
    Call Stack (most recent call first):
      cmake/android.toolchain.cmake:476 (__INIT_VARIABLE)
      /usr/local/Cellar/cmake/2.8.10.2/share/cmake/Modules/CMakeDetermineSystem.cmake:86 (include)
      CMakeLists.txt:16 (PROJECT)


    CMake Error at cmake/android.toolchain.cmake:412 (FILE):
      file STRINGS file
      "/Users/vgokhale/Desktop/android-ndk-r8e/sysroot/usr/include/android/api-level.h"
      cannot be read.
    Call Stack (most recent call first):
      cmake/android.toolchain.cmake:548 (__DETECT_NATIVE_API_LEVEL)
      /usr/local/Cellar/cmake/2.8.10.2/share/cmake/Modules/CMakeDetermineSystem.cmake:86 (include)
      CMakeLists.txt:16 (PROJECT)

CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file:/Users/vgokhale/Desktop/torch-android/src/build/CMakeFiles/2.8.10.2/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file:/Users/vgokhale/Desktop/torch-android/src/build/CMakeFiles/2.8.10.2/CMakeCXXCompiler.cmake
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
make: *** No rule to make target `install'.  Stop.

有两组错误。我不知道从哪里开始第一组。 android.toolchain.cmake 文件默认查看 sysroot,但那里没有安装 Android,Google 也没有要求我在那里安装它。

关于 CMAKE* 变量,我发现大多数解决方案都涉及安装我已经拥有的开发人员工具。我尝试手动设置 CXXCC 变量,但这没有帮助。

我应该从哪里开始?

android c++ android-ndk cmake
1个回答
4
投票

好的,我会在这里做一些猜测,但我认为你正在使用 http://code.google.com/p/android-cmake/ 并且你在为它提供 ANDROID_STANDALONE_TOOLCHAIN 时调用它NDK 的路径。如果我是对的,那就是问题所在。

您应该使用 ANDROID_NDK 调用它并提供您的 NDK 的路径。 android-cmake 文档表明这是要走的路。

继续使用 ANDROID_STANDALONE_TOOLCHAIN 调用它,但为其提供已安装工具链的路径(使用 make-standalone-toolchain.sh 创建的东西)

如果你想这样做,你可以在已安装的 NDK 中的 docs/STANDALONE-TOOLCHAIN.html 中找到有关创建独立工具链的信息。

© www.soinside.com 2019 - 2024. All rights reserved.