2013-10-20 45 views
5

Gần đây tôi đã mua một cuốn sách hỗ trợ phát triển C++ cho Android có chứa một số mẫu mã. Tuy nhiên, khi tôi đến để xây dựng một số các mẫu mã, tôi nhận được lỗi sau:xây dựng dự án android tạo ra lỗi 2

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 

Các làm cho tập tin được như hình dưới đây:

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) 

File Application.mk là như sau:

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

Điều này được biên soạn bằng ADT v22.2.1 và Android NDK r9 trên máy tính Windows 7.

NDK được cài đặt vào 'C: \ ndk \ android-ndk-r9 \'.

+1

Giá trị của biến môi trường '' NDK_HOME'' của bạn là gì? –

+0

Xin lỗi Sergey, nhưng tôi gặp khó khăn khi tìm vị trí của biến môi trường NDK_HOME. Tôi đã thiết lập tùy chọn Vị trí qua NDK -> Android -> NDK -> Vị trí NDK thành "C: \ ndk \ android-ndk-r9 \". Điều này dường như được tìm thấy trong quá trình xây dựng.Tôi quên rằng tôi đang chạy Windows 7 (Chỉnh sửa bài chính). –

+1

Và '' Application.mk'' của bạn, vui lòng. –

Trả lời

8

Android NDK r9 chứa các dãy công cụ sau:

  1. cánh tay-linux-androideabi-4.6
  2. cánh tay-linux-androideabi-4.8
  3. cánh tay-linux-androideabi-clang3.2
  4. cánh tay-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

không có toolchain cho gcc 4.7. Tuy nhiên, Application.mk của bạn có chứa dòng:

NDK_TOOLCHAIN_VERSION := 4.7 

nào kể NDK để tìm kiếm 4,7 toolchain. Và nó không thành công.

Vì vậy, giải pháp cho vấn đề của bạn đang thay đổi biến NDK_TOOLCHAIN_VERSION-4.6, 4.8, clang3.2, clang3.3, hoặc chỉ clang (mà sẽ sử dụng phiên bản mới nhất của Clang có sẵn trong NDK).

+2

Bài học kinh nghiệm. Cảm ơn sự hỗ trợ của bạn trong vấn đề này. –

0

Kiểm tra đường dẫn dự án của bạn nếu có chứa không gianký tự không phải tiếng Anh.
Tôi đã chuyển dự án của mình vào một nơi nào đó mà không có không gian, xây dựng lại và hoạt động.

+1

Cảm ơn @Johnny, nhưng vấn đề này đã được giải quyết rõ ràng với quy trình được vạch ra bởi Giải pháp của Sergey. –

Các vấn đề liên quan