cmake失败了android ndk

mav*_*989 7 c++ android cmake android-ndk

我正在尝试使用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.
Run Code Online (Sandbox Code Playgroud)

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

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

关于从哪里开始的任何想法?

谢谢.

Gui*_*ume 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 中找到有关创建独立工具链的信息。