编译*.so文件。
一般只需要修改*.mk文件中的。
LOCAL_SRC_FILES 这个命令 这个是要编译的*.cpp文件
LOCAL_EXPORT_C_INCLUDES 和
LOCAL_C_INCLUDES 是要搜索头文件的包含的目录 *.h
添路径都要填相对路径:
LOCAL_PATH := $(call my-dir)
返回当前MK文件的所在路径 , 上面设置的目录都是相当于这个设置的。
MK文件跟makefile文件查不多
假如用cygwin编译*.so文件,遇到头文件找不到报错的时候。一般是找最近的*.mk文件,因为不同的*.mk文件负责编译不同的模块,最后链接起来生成*.so文件。
编译报错:提示看这个
BaseClasses/UIWidget.h:30:42: fatal error: ../Layouts/UILayoutParameter.h: No such file or directory
这样。这个是在现有搜索目录中找不到这个文件
UILayoutParameter.h
可以看一下。UIWidget.h文件。 看是怎么包含UILayoutParameter.h文件的。
../ 上一级目录
./当前目录
一般直接在
LOCAL_EXPORT_C_INCLUDES 和
LOCAL_C_INCLUDES 加上 UILayoutParameter.h 文件相对于 LOCAL_PATH的目录即可
例子:(\为链接符 LOCAL_EXPORT_C_INCLUDES 命令必须在同一行, 要换行写 必须加上 \)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) \
$(LOCAL_PATH)/GUI/CCControlExtension \
shell脚本中输入文件路径是这样的:
#注释 声明 ANDROID_NDK_ROOT变量
ANDROID_NDK_ROOT=/cygdrive/c/android-ndk-r9
# 打印变量的内容: 这个运行的时候很好用
echo " ANDROID_NDK_ROOT = $ANDROID_NDK_ROOT"