【发布时间】:2023-04-06 20:37:01
【问题描述】:
看起来有可能,但我的脚本产生了奇怪的结果:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/libos/Android.mk
include $(LOCAL_PATH)/libbase/Android.mk
include $(LOCAL_PATH)/utils/Android.mk
LOCAL_MODULE := native
include $(BUILD_SHARED_LIBRARY)
只有第一个包含被解析得很好,其他 Android.mk 文件被搜索到奇怪的路径。 有什么建议吗?
更新:我破坏了我的建筑环境...在办公室还可以,但在家里 LOCAL_PATH:= $(call my-dir) 将 LOCAL_PATH 定义为 NDK 目录而不是项目目录.这是我的建筑批次:
set BASHPATH=K:\cygwin\bin\bash
set PROJECTDIR=/cygdrive/h/Alex/Alex/Work/Android/remote-android
set NDKDIR=/cygdrive/h/Alex/Programming_Docs/Android/android-ndk-r6/ndk-build
set APP_BUILD_SCRIPT=/cygdrive/h/Alex/Alex/Work/Android/project/jni/Android.mk
set DEV_ROOT=h:/Alex/Alex/Work/Android/project
%BASHPATH% --login -c "cd %PROJECTDIR% && %NDKDIR%"
更新:我完全不明白这东西是如何组成路径的。我的路径出现错误,例如“/cygdrive/d/project/jni//cygdrive/d/Soft/project/jni/libos/src/libos.cpp”。这是在我决定指定根目录中的所有文件之后Android.mk 而不是包含子模块。
更新 2:不走运,这也不起作用:
LOCAL_PATH:= $(call my-dir)
# Include makefiles here.
include $(LOCAL_PATH)/libos/Android.mk
include $(LOCAL_PATH)/libbase/Android.mk
include $(LOCAL_PATH)/utils/Android.mk
# Clear variables here.
include $(CLEAR_VARS)
【问题讨论】:
-
我会冒险并建议也许第一个
Android.mk正在重新定义LOCAL_PATH。尝试使用其他变量名,例如AARDVARK,看看会发生什么。
标签: android android-ndk makefile