'ndk-build' Overview I. Usage: The Android NDK r4 introduced a new tiny shell script,named 'ndk-build',to simplify building machine code. The script is located at the top-level directory of the NDK,and shall be invoked from the command-line when in your application project directory,or any of its sub-directories. For example: cd $PROJECT $NDK/ndk-build Where $NDK points to your NDK installation path. You can also create an alias or add $NDK to your PATH to avoid typing it every time. II. Options: All parameters to 'ndk-build' are passed directly to the underlying GNU Make command that runs the NDK build scripts. Notable uses include: ndk-build --> rebuild required machine code. ndk-build clean --> clean all generated binaries. ndk-build NDK_DEBUG=1 --> generate debuggable native code. ndk-build V=1 --> launch build,displaying build commands. ndk-build -B --> force a complete rebuild. ndk-build -B V=1 --> force a complete rebuild and display build commands. ndk-build NDK_LOG=1 --> display internal NDK log messages (used for debugging the NDK itself). ndk-build NDK_DEBUG=1 --> force a debuggable build (see below) ndk-build NDK_DEBUG=0 --> force a release build (see below) ndk-build NDK_HOST_32BIT=1 --> Always use toolchain in 32-bit (see below) ndk-build NDK_APPLICATION_MK=<file> --> rebuild,using a specific Application.mk pointed to by the NDK_APPLICATION_MK command-line variable. ndk-build -C <project> --> build the native code for the project path located at <project>. Useful if you don't want to 'cd' to it in your terminal.
(摘自NDK说明文档NDK-BUILD.html)
2、
我们看到上面ndk-build有很多可选参数,那在cocos2dx中,这些参数使用的呢?
我们都知道在2.X版本中,我们都是通过build_native.sh脚本,编译cocos2dx项目,
那么我们怎么通过build_native.sh脚本使用上面的参数呢?
下面是从build_native.sh脚本中摘出来的:
if [[ "$buildexternalsfromsource" ]]; then echo "Building external dependencies from source" "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DXTALKINGDATA_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source" else echo "Using prebuilt externals" "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DXTALKINGDATA_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt" fi看下这部分:
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \ "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DXTALKINGDATA_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"解释: $NDK_ROOT -- NDK工具的根目录,在这里有ndk-build执行程序 -C "$APP_ANDROID_ROOT" -- 编译的工程,参看第一部分 $* -- shell脚本,传递给脚本或函数的所有参数。 总结:所以如果我们需要使用上面ndk-build命令的可选参数,直接在执行build_native.sh脚本时,添加在后面即可。 例子: $ ./build_native.sh clean