Application.mk 文件语法规范
2011-01-10 16:52
288 查看
Application.mk 文件语法规范
介绍:
-------------
这篇文档用来描述Application.mk生成文件的语法,这个文件是用来描述你的Android程序需要的原生模块的。要理解后面说的,假定你已经度过docs/OVERVIEW.TXT文件,该文件是用来说明他们的角色和用途的。
这篇问档的读者应该读过docs/OVERVIEW.TXT和docs/ANDROID-MK.TXT
总览:
---------
Application.mk的目的是描述你的程序需要的原生模块(比如,static/shared libraries),
每个Application.mk必须放置在顶层apps目录下子目录下,例如:
$NDK/apps/<myapp>/Application.mk
这里,<myapp>是一个短名称,用于向NDK编译系统描述你的'application',(这个名字不会进入你的生成的共享库或你最终的包里).
Application.mk其实是一个小的GNU Makefile片段,必须定义一些变量:
APP_MODULES
这个变量必须有,用来描述你应用程序需要的所有原生模块(由Android.mk文件描述),
这是用空格分割的模块名字列表,这个模块名字与在Android.mk文件中LOCAL_MODULE定义是一样的。
APP_PROJECT_PATH
这个变量必须有,应该给出你的程序项目的绝对路径,这是用于复制或安装剥离的共享库的版本到APK生成器所知道的位置。
APP_OPTIM
这个变量是可选的,可以定义成两个值'release' or 'debug'. 用于修改编译程序模块时的优化层级。
'release'模式是默认的,会产生高优化的文件,’debug’模式会生成不优化的文件,使得调试更容易进行。
主意,调试’release’和’debug’文件都是可能的,但是'release'版在调试节提高的信息很少,一些变量被优化输出,无法检查,代码被重排序,使得跟踪代码很困难,堆栈追踪也不可靠,等等…
APP_CFLAGS
一套编译器选项,在编译模块中的C代码时选用。这可能用于根据应用程序来改变模块的生成,以代替修改Android.mk文件本身。
IMPORTANT WARNING: +++++++++++++++++++++++++++++++++++++++++++++++++++
+
+ All paths in these flags should be relative to the top-level NDK
+ directory. For example, if you have the following setup:
+
+
sources/foo/Android.mk
+
sources/bar/Android.mk
+
+ To specify in foo/Android.mk that you want to add the path to the
+ 'bar' sources during compilation, you should use:
+
+
APP_CFLAGS += -Isources/bar
+
+ Or alternatively:
+
+
APP_CFLAGS += -I$(LOCAL_PATH)/../bar
+
+ Using '-I../bar' will *NOT* work since it will be equivalent to
+ '-I$NDK_ROOT/../bar' instead.
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
重要警告:
所有在这些编译选项中的路径都是相对于NDK顶层目录的。例如,如果你有下面的设置:
+
sources/foo/Android.mk
+
sources/bar/Android.mk
要在foo/Android.mk中指定你想要添加bar的路径,你应该用
+
+
APP_CFLAGS += -Isources/bar
+
或者:
+
APP_CFLAGS += -I$(LOCAL_PATH)/../bar
使用'-I../bar'没有用,因为它等价于:
+ '-I$NDK_ROOT/../bar'
APP_CXXFLAGS
与APP_CFLAGS相同,用于C++代码
APP_CPPFLAGS
Same as APP_CFLAGS but will be passed to both C and C++ sources
与APP_CFLAGS相同,但是被传递给C和C++源代码
一个普通的Application.mk文件像下面这样:
-------------- cut here -------------------------
APP_MODULES
:= <list of modules>
APP_PROJECT_PATH := <path to project>
-------------- cut here -------------------------
介绍:
-------------
这篇文档用来描述Application.mk生成文件的语法,这个文件是用来描述你的Android程序需要的原生模块的。要理解后面说的,假定你已经度过docs/OVERVIEW.TXT文件,该文件是用来说明他们的角色和用途的。
这篇问档的读者应该读过docs/OVERVIEW.TXT和docs/ANDROID-MK.TXT
总览:
---------
Application.mk的目的是描述你的程序需要的原生模块(比如,static/shared libraries),
每个Application.mk必须放置在顶层apps目录下子目录下,例如:
$NDK/apps/<myapp>/Application.mk
这里,<myapp>是一个短名称,用于向NDK编译系统描述你的'application',(这个名字不会进入你的生成的共享库或你最终的包里).
Application.mk其实是一个小的GNU Makefile片段,必须定义一些变量:
APP_MODULES
这个变量必须有,用来描述你应用程序需要的所有原生模块(由Android.mk文件描述),
这是用空格分割的模块名字列表,这个模块名字与在Android.mk文件中LOCAL_MODULE定义是一样的。
APP_PROJECT_PATH
这个变量必须有,应该给出你的程序项目的绝对路径,这是用于复制或安装剥离的共享库的版本到APK生成器所知道的位置。
APP_OPTIM
这个变量是可选的,可以定义成两个值'release' or 'debug'. 用于修改编译程序模块时的优化层级。
'release'模式是默认的,会产生高优化的文件,’debug’模式会生成不优化的文件,使得调试更容易进行。
主意,调试’release’和’debug’文件都是可能的,但是'release'版在调试节提高的信息很少,一些变量被优化输出,无法检查,代码被重排序,使得跟踪代码很困难,堆栈追踪也不可靠,等等…
APP_CFLAGS
一套编译器选项,在编译模块中的C代码时选用。这可能用于根据应用程序来改变模块的生成,以代替修改Android.mk文件本身。
IMPORTANT WARNING: +++++++++++++++++++++++++++++++++++++++++++++++++++
+
+ All paths in these flags should be relative to the top-level NDK
+ directory. For example, if you have the following setup:
+
+
sources/foo/Android.mk
+
sources/bar/Android.mk
+
+ To specify in foo/Android.mk that you want to add the path to the
+ 'bar' sources during compilation, you should use:
+
+
APP_CFLAGS += -Isources/bar
+
+ Or alternatively:
+
+
APP_CFLAGS += -I$(LOCAL_PATH)/../bar
+
+ Using '-I../bar' will *NOT* work since it will be equivalent to
+ '-I$NDK_ROOT/../bar' instead.
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
重要警告:
所有在这些编译选项中的路径都是相对于NDK顶层目录的。例如,如果你有下面的设置:
+
sources/foo/Android.mk
+
sources/bar/Android.mk
要在foo/Android.mk中指定你想要添加bar的路径,你应该用
+
+
APP_CFLAGS += -Isources/bar
+
或者:
+
APP_CFLAGS += -I$(LOCAL_PATH)/../bar
使用'-I../bar'没有用,因为它等价于:
+ '-I$NDK_ROOT/../bar'
APP_CXXFLAGS
与APP_CFLAGS相同,用于C++代码
APP_CPPFLAGS
Same as APP_CFLAGS but will be passed to both C and C++ sources
与APP_CFLAGS相同,但是被传递给C和C++源代码
一个普通的Application.mk文件像下面这样:
-------------- cut here -------------------------
APP_MODULES
:= <list of modules>
APP_PROJECT_PATH := <path to project>
-------------- cut here -------------------------
相关文章推荐
- Android.mk和Application.mk文件语法规范说明及举例
- Android.mk和Application.mk文件语法规范说明及举例
- 【转】Application.mk 文件语法规范
- Android.mk和Application.mk文件语法规范说明及举例
- Application.mk 文件语法规范
- Android.mk文件语法规范
- Android-NDK开发之基础--Android.mk文件语法规范(转JavaEye)
- Android.mk文件的语法规范(http://www.srombauts.fr/android-ndk-r5b/docs/ANDROID-MK.html
- Android.mk文件语法规范
- Android makefile编译系统 Android.mk 文件语法规范
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板
- Android.mk文件语法规范及使用模板【转载】
- Android.mk文件语法规范及使用模板