2013-01-16 5 views
-3

Android ROM (galaxys2att, 진저 브레드)을 만드는 데 문제가 있습니다. 나는 makefile 처리에 대해 더 똑똑해지기로 결정했다. 그래서 나는 함께 놀 수있는 간단한 테스트 프로젝트를 만들었습니다. 하지만 이 아니라이 컴파일됩니다. 여기에 내가했던 일이야 :Android 빌드에 프로젝트를 추가하는 방법은 무엇입니까?

하나는 내가 빌드 할 모듈에서 ("에 MyProject/")이 (내가 "MMS를/"를 사용하지만, 다른 사람이 같은 문제가 없었다) 디렉토리를 생성합니다.
2는 내가 들어 그 디렉토리에 Android.mk를 만들

안녕하세요 :

echo "Hello from myproject" 

(I 안녕하세요 사이에 빈 줄이없는 : 및 에코 : 페이지 편집기는 이러한 추가)

3 "Mms/"디렉토리에서 mm을 실행했습니다.

MMS 및 기타 하위 프로젝트는 컴파일되었지만 myproject의 증거는 없습니다.

MMS를에 Android.mk 내가 원래 envsetup.sh를 실행 물론 라인 include $(call all-makefiles-under, $(LOCAL_PATH))

가 포함되어 있습니다.
여기에 무엇이 누락 되었습니까?

답변

1

Android NDK에는 .../docs/ANDROID-MK.html에 몇 가지 설명서가 있습니다. 불행히도 기존 메이크 파일을 조사하는 것 외에 다른 많은 문서를 찾을 수는 없습니다. 공유 라이브러리를 구축하기위한 Android.mk 최소한의는 일반 메이크처럼되지 않습니다이

# "initialize" Makefile 
LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

# setup some variables 
LOCAL_MODULE := hello-jni 
LOCAL_SRC_FILES := hello-jni.c 

# do the build 
include $(BUILD_SHARED_LIBRARY) 

Android.mk처럼 보일 수 있습니다. 보일러 판을 가지고 있고 하위 makefile에 필요한 몇 가지 변수를 정의한 다음 미리 정의 된 Android makefile을 포함시켜 작업을 수행합니다.

BUILD_SHARED_LIBRARY

, 예를 들면, 그 자체 등을 정의하고 어떤 변수를 확인하고 확인 $(BUILD_SYSTEM)/build-module.mk를 포함하고,

BUILD_SHARED_LIBRARY := $(BUILD_SYSTEM)/build-shared-library.mk 

build/core/build-all.mk로 정의된다.

build-all.mk에는 정적 라이브러리 또는 실행 파일을 빌드하는 데 사용되는 BUILD_HOST_EXECUTABLE, BUILD_STATIC_LIBRARY 또는 BUILD_EXECUTABLE과 같은 다른 변수도 정의되어 있습니다.

+0

응답 해 주셔서 감사합니다. 나는 이것을 밖으로 시험 할 것이다. -John – DontPanic

+0

위대한 작품! 다시 한번 감사드립니다. – DontPanic

관련 문제