码迷,mamicode.com
首页 > 移动开发 > 详细

AndroidNDK学习笔记

时间:2015-08-09 17:04:03      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

NDK系统参数详解:

 

LOCAL_PATH := $(call my-dir)

指定LOCAL_PATH变量,用于查找源文件,上面的语句的意思是将LOCAL_PATH变量定义成当前文件所在目录路径, my-dir编译系统提供的宏函数,被用来获取当前的目录。

 

$(call import-add-path,$(LOCAL_PATH)/../../../../)

import-add-path用来添加路径到 NDK_MODULE_PATH 环境变量中。

 

include $(CLEAR_VARS)

CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除除LOCAL_PATH以外的所有LOCAL_XXX变量,如LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_SHARED_LIBRARIES等. 一个Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始,以include $(BUILD_XXX)结束。

 

LOCAL_MODULE := cocos2dcpp_shared

每一个android.mk文件中都必须定义一个模块标示 LOCAL_MODULE , 这个名字必须是唯一的并且不包含任何的空格,编译系统将自动的修改生成文件的前缀和后缀,如一个模块为foo共享库将被改为libfoo.so,如果你的模块名为libfoo,编译系统生成的文件为 libfoo.so, 而不会去再增加前缀,当你使用的时候,android平台会自动识别

 

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_MODULE_FILENAME指定模块文件名

 

LOCAL_SRC_FILES := hellocpp/main.cpp \

../../Classes/AppDelegate.cpp \

../../Classes/HelloWorldScene.cpp

LOCAL_SRC_FILES指定本模块的c/c++源文件(.c .cpp .cc),各文件之间以空格分隔,\为续行符。

 

LOCAL_CPP_EXTENSION := .cc .cpp

默认的c++文件扩展名是.cpp, LOCAL_CPP_EXTENSION可以用来指定不同类型的扩展名,不要忘了前面的点

 

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes/Game

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes/Lobby

LOCAL_C_INCLUDES参数指定本模块包含的头文件路径,多个路径之间以空格分隔

 

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static

LOCAL_WHOLE_STATIC_LIBRARIES参数用来指定本模块依赖的所有静态库模块(连接静态连接库的时候不会移除"daed code",何谓dead code呢,就是调用者模块永远都不会用到的代码段和变量)

 

LOCAL_STATIC_LIBRARIES += cocos2dx_static

LOCAL_STATIC_LIBRARIES += cocosdenshion_static

LOCAL_ STATIC_LIBRARIES参数用来指定本模块依赖的所有静态库模块(连接静态连接库的时候会移除"daed code",何谓dead code呢,就是调用者模块永远都不会用到的代码段和变量)

 

include $(BUILD_STATIC_LIBRARY) 表示编译成静态库。

include $(BUILD_SHARED_LIBRARY) 表示编译成动态库(即共享库)

include $(BUILD_EXECUTABLE) 表示编译成可执行程序。

include $(PREBUILT_STATIC_LIBRARY) 表示定义一个预编译好的静态库模块。

include $(PREBUILT_SHARED_LIBRARY) 表示定义一个预编译好的动态库模块。

$(call import-module,cocos2dx)导入外部模块(此处表示导入cocos2dx模块,cocos2dx为模块名LOCAL_MODULE,注意该命令搜索外部模块的路径在NDK_MODULE_PATH中指定或通过$(call import-add-path,$(LOCAL_PATH)/../../)命令导入)

 

编写预编译静态库Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := libxml2_static

LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/android/libxml2.a

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_STATIC_LIBRARY)

 

编写预编译动态库Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := libYvImSdk

LOCAL_SRC_FILES := $(LOCAL_PATH)/libs/$(TARGET_ARCH_ABI)/libYvImSdk.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

 

AndroidNDK学习笔记

标签:

原文地址:http://www.cnblogs.com/snail-IT/p/4715287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!