锁定老帖子 主题:NDK开发指南---NDK使用方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-30
Android NDK的使用方法: ======================
NDK的用户提示和技巧集合
如何强制显示build命令 ------------------------
执行"ndk-build V=1",实际生成的命令将会被显示。这可以用来验证你编译的东西,并且还会检查NDK的 build system中的错误。
(V=1 来自Linux内核的build system)
如何强制重新编译你的源码 ------------------------ 使用GNU Make的“-B”选项
ndk-build -B
如何存储本地源码到除$PROJECT/jni以外的位置: -------------------------------------------
首先,你可以在你的$PROJECT/jni/Android.mk中包含另一个不同位置的Android.mk
另外,你需要在你的Application.mk文件中定义APP_BUILD_SCRIPT来指向那个替代的Android.mk文件
如果在不使用cd-ing的情况下来编译你的本地项目文件 ------------------------------------------------ 有时候,你需要在不用使用cd命令切换到根目录的情况下重新编译你的本地项目文件,可以使用 GNU-Make的'-C <path>'选项,如:
ndk-build -C <project-path>
如何将你的Application.mk文件存储子$PROJECT/jni目录之外 ------------------------------------------------------ 从NDK r4开始,你可以简单的将源文件放到$PROJECT/jni/目录下,然后执行'ndk-build'脚本
如果你想使用'ndk-build'命令但是将源文件放到了其他的位置,你可以使用如下命令:
ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk
如果你想使用传统的$NDK/apps/<name> 来build system,你可以创建一个符号链接到你最终的Application.mk 比如:
$PROJECT/foo/Applicatio.mk
用如下的命令创建符号链接
ln -s $PROJECT/foo $NDK/apps/<name>
这将使得你的$NDK/apps/<name>/Applicaiton.mk文件直接指向$PROJECT/jni/Application.mk
注意,这样生成的文件将仍然在$NDK/out/apps/<name>目录下。
Windows用户在使用Cygwin的情况下,它可以通过"ln -s"命令来创建符号链接,例如
ln -s <target> <link>
如何正确的添加一个包含目录到你的模块中: --------------------------------------
如果你定义了若干模块,在编译另一个模块的时候需要包含某个模块的头文件,例如
$PROJECT/jni/foo/ Android.mk foo.h foo.c
$PROJECT/jni/foo/ Android.mk fo.c
bar.c使用了"#include <foo.h>",你需要正确的将路径添加到foo模块的jni/bar/Android.mk中
例如,可以使用如下这样
LOCAL_C_INCLUDES := ../foo
但是这样是不会执行的,因为所有编译都从'ndk-build'被调用所在的目录开始,这些包含文件必须是 相对的才可以。
正确的方法是:
LOCAL_C_INCLUDE :=$(LOCAL_PATH)/../foo
它才哦那够了相对路径的方式,你需要将foo和bar移到源码目录的更深层次下。
如果你必须需要它,你可以使用NDK_APP_PROJECT_PATH指向你的项目目录
LOCAL_C_INCLUDES :=$(NDK_APP_PROJECT_PATH)/jni/foo
然而我们不建议这种方式,相对路径$(LOCAL_PATH)这种方式会更好些 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 3754 次