CMake在Android NDK上失败了。

7

我正在尝试使用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 变量,但没有帮助。

我应该从哪里开始?

1个回答

4
好的,我会猜测一下,但我认为您正在使用http://code.google.com/p/android-cmake/,并在提供NDK路径的同时使用ANDROID_STANDALONE_TOOLCHAIN进行调用。如果我是对的,那就是问题所在。
您应该使用ANDROID_NDK来调用它,并提供NDK的路径。android-cmake文档建议这样做。
或者保持使用ANDROID_STANDALONE_TOOLCHAIN进行调用,但提供已安装的工具链的路径(使用make-standalone-toolchain.sh创建的内容)。
如果您想走这条路,可以在已安装的NDK中的docs/STANDALONE-TOOLCHAIN.html中找到有关创建独立工具链的信息。

我应该在Windows上将ANDROID_STANDALONE_TOOLCHAIN指向哪里?我设置了“C:\ cygwin64 \ bin”,但没有起作用。我仍然有问题:https://github.com/realm/realm-java/issues/4070#issuecomment-274723770 - Dr.jacky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接