Android.mk 编译main.cpp生成test二进制文件,其中需要包含多个头文件和多个cpp文件,还需要引用其他的lib库,请给出参考demo
时间: 2024-02-26 11:57:50 浏览: 67
cpp代码-测试demo
好的,以下是一个简单的 Android.mk 文件,用于编译 main.cpp 生成 test 二进制文件,其中包含多个头文件和多个 cpp 文件,并且引用了其他的 lib 库:
```makefile
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := main.cpp \
file1.cpp \
file2.cpp \
file3.cpp \
file4.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include1 \
$(LOCAL_PATH)/include2
LOCAL_LDLIBS := -llog
LOCAL_STATIC_LIBRARIES := lib1 \
lib2
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
LOCAL_MODULE := lib1
LOCAL_SRC_FILES := lib1.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include3
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := lib2
LOCAL_SRC_FILES := lib2.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include4
include $(BUILD_STATIC_LIBRARY)
```
其中,`LOCAL_PATH` 表示当前 Android.mk 文件所在的目录。
`include $(CLEAR_VARS)` 表示清除变量,以便重新设置 LOCAL_ 变量。
`LOCAL_MODULE` 表示模块名称,这里是 test、lib1、lib2。
`LOCAL_SRC_FILES` 表示源文件列表,这里包含了 main.cpp、file1.cpp、file2.cpp、file3.cpp、file4.cpp。
`LOCAL_C_INCLUDES` 表示头文件目录列表,这里包含了 include1、include2、include3、include4。
`LOCAL_LDLIBS` 表示需要链接的系统库,这里链接了 log 库。
`LOCAL_STATIC_LIBRARIES` 表示需要链接的静态库列表,这里包含了 lib1、lib2。
`include $(BUILD_EXECUTABLE)` 表示编译一个可执行文件。
`include $(BUILD_STATIC_LIBRARY)` 表示编译一个静态库。
希望这个 demo 能够帮到你。
阅读全文