2013-04-23 106 views
7

我想建立一些使用Android NdK独立工具链。但是,我遇到了这些错误。cmake失败与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变量,我发现大多数解决方案都涉及安装开发人员工具,我已经有了。我尝试手动设置CXX和CC变量,但没有帮助。

任何想法从哪里开始?

谢谢。

回答

4

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

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

跟上ANDROID_STANDALONE_TOOLCHAIN调用它,但它提供的路径安装的toochain(与make-standalone-toolchain.sh创建的东西)

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

+0

我应该在Windows下指向ANDROID_STANDALONE_TOOLCHAIN?我设置了“C:\ cygwin64 \ bin”,但没有工作。我仍然有问题:https://github.com/realm/realm-java/issues/4070#issuecomment-274723770 – 2017-01-24 07:15:54