Tôi có một tập tin Android.mk đơn giản:Shell script cuộc gọi từ Android.mk, đầu ra tiêu chuẩn và thiếu tách lỗi
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(shell ($(LOCAL_PATH)/echo_test.sh))
LOCAL_MODULE := libecho_test
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
Điều thú vị mà nó làm là gọi điện cho 'echo_test.sh' kịch bản bash . Trong trường hợp khi các nội dung của kịch bản là
#!/bin/bash
echo 'echo is working' >&2
hoặc
#!/bin/bash
echo 'echo is working' >/dev/null
mọi thứ đều OK.
Mọi thứ đi sai khi kịch bản bash là
#!/bin/bash
echo 'echo is working'
hoặc
#!/bin/bash
echo 'echo is working' >&1
Sau đó, các lỗi trở lại là
Android.mk:4: *** missing separator. Stop.
Điều này xảy ra cả với Android NDK 7 và khi bạn bao gồm mô-đun này trong quá trình xây dựng Android Ice Cream Sandwich 4.0.3.
Tôi thực sự không thể hiểu thỏa thuận với đầu ra tiêu chuẩn và hệ thống xây dựng Android là gì. Có ai có một lời giải thích?
Nó thực sự nguy hiểm để thêm kịch bản chạy cho tất cả: – mafonya