【问题标题】:building android project produces make error 2构建 android 项目产生 make 错误 2
【发布时间】:2013-10-28 22:34:18
【问题描述】:

我最近购买了一本书来帮助我开发适用于 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\”。

【问题讨论】:

  • NDK_HOME 环境变量的值是多少?
  • 抱歉 Sergey,但我无法找到 NDK_HOME 环境变量的位置。我已通过首选项 -> Android -> NDK -> NDK 位置将 NDK 位置设置为“C:\ndk\android-ndk-r9\”。这似乎是在构建过程中发现的。我忘了我正在运行 Windows 7(编辑主帖)。
  • 还有你的Application.mk,请。
  • Application.mk 现已在主帖中提供。
  • 能否请您尝试在 NDK r9 文件夹下编译示例代码“hello-jni”。如果有效吗?

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


【解决方案1】:

Android NDK r9 包含以下工具链:

  1. arm-linux-androideabi-4.6
  2. arm-linux-androideabi-4.8
  3. arm-linux-androideabi-clang3.2
  4. arm-linux-androideabi-clang3.3
  5. llvm-3.2
  6. llvm-3.3
  7. mipsel-linux-android-4.6
  8. mipsel-linux-android-4.8
  9. mipsel-linux-android-clang3.2
  10. mipsel-linux-android-clang3.3
  11. x86-4.6
  12. x86-4.8
  13. x86-clang3.2
  14. x86-clang3.3

没有适用于 gcc 4.7 的工具链。 但是,您的 Application.mk 包含以下行:

NDK_TOOLCHAIN_VERSION   := 4.7

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

因此,您的问题的解决方案是将NDK_TOOLCHAIN_VERSION 变量更改为4.64.8clang3.2clang3.3,或者只是clang(它将使用可用的最新版本的Clang在 NDK 中)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢@Johnny,但是这个问题已经通过 Sergey 的解决方案概述的过程得到了明确的解决。
    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 2017-09-27
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多