构建android项目会产生make error 2

时间:2013-10-20 12:49:26

标签: android c++ android-ndk makefile adt

我最近购买了一本书,以帮助我开发包含一些代码示例的Android C ++。但是,当我来构建一些示例代码时,我收到以下错误:

C:\ndk\android-ndk-r9\ndk-build.cmd all 
"Compile++  : Chapter10 <= Chapter10.cpp
process_begin: CreateProcess(NULL, C:/ndk/android-ndk-r9/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi/objs/Chapter10/Chapter10.o.d -fno-exceptions -fno-rtti -Ijni -IC:/ndk/android-ndk-r9/sources/android/native_app_glue -IC:/ndk/android-ndk-r9/sources/cxx-stl/stlport/stlport -IC:/ndk/android-ndk-r9/sources/cxx-stl//gabi++/include -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -frtti -c jni/Chapter10.cpp -o ./obj/local/armeabi/objs/Chapter10/Chapter10.o, ...) failed.

make (e=2): The system cannot find the file specified.

make: *** [obj/local/armeabi/objs/Chapter10/Chapter10.o] Error 2

make文件如下所示:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_ARM_MODE          := arm
LOCAL_C_INCLUDES        := $(LOCAL_PATH)
LOCAL_MODULE            := Chapter10
LOCAL_SRC_FILES         := Chapter10.cpp \
                           (Other cpp Files . . . )
LOCAL_LDLIBS            := -llog -landroid -lEGL -lGLESv2 -lOpenSLES
LOCAL_STATIC_LIBRARIES  := android_native_app_glue

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

Application.mk文件如下:

APP_PLATFORM    := android-9
APP_STL         := stlport_static
NDK_TOOLCHAIN_VERSION   := 4.7

这是在Windows 7计算机上使用ADT v22.2.1和Android NDK r9编译的。

NDK已安装到'C:\ ndk \ android-ndk-r9 \'。

2 个答案:

答案 0 :(得分:8)

Android NDK r9包含以下工具链:

  1. 臂-Linux的androideabi-4.6
  2. 臂-Linux的androideabi-4.8
  3. 臂-Linux的androideabi-clang3.2
  4. 臂-Linux的androideabi-clang3.3
  5. LLVM-3.2
  6. LLVM-3.3
  7. mipsel体系-Linux的机器人-4.6
  8. mipsel体系-Linux的机器人-4.8
  9. mipsel体系-Linux的机器人-clang3.2
  10. mipsel体系-Linux的机器人-clang3.3
  11. x86-4.6
  12. x86-4.8
  13. x86的clang3.2
  14. x86的clang3.3
  15. gcc 4.7没有工具链。但是,您的Application.mk包含以下行:

    NDK_TOOLCHAIN_VERSION   := 4.7
    

    告诉NDK寻找4.7工具链。它失败了。

    因此,问题的解决方案是将NDK_TOOLCHAIN_VERSION变量更改为4.64.8clang3.2clang3.3或仅{{1} }(将使用NDK中最新版本的Clang)。

答案 1 :(得分:0)

检查项目路径是否包含空格非英文字符
我将项目移动到没有空格的地方,重新构建并运行。