2013-04-23 105 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