拒绝ndk-build (Android Native Development Kit)

Eclipse或者Android Studio里都不能调试C, 实际还得在gdb命令行里做,那这些代码放在Eclipse里毫无用处。虽然据说新的Android Studio里集成了C/C++开发,但是到什么程度还不知道。

废话少说,

直接用NDK里的gcc是这样的:  (假设ANDROID_NDK_ROOT已经被设定好了)

就是几个环境变量的事儿。其中第一行的android-8可以自己看着办换成android-22之类的都行,就是sdk版本号.
其中的STL_ROOT那两行是为了C++的stl库的,用得着时就去掉注释。

SYS_ROOT=`ls -d $ANDROID_NDK_ROOT/platforms/android-8/arch-arm` || exit 1
TOOL_CHAIN_DIR=`ls -d $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-[4-5].*/prebuilt/* | tail -n 1` || exit 1
CC="$TOOL_CHAIN_DIR/bin/arm-linux-androideabi-g++ --sysroot=$SYS_ROOT"

#STL_ROOT=`ls -d $ANDROID_NDK_ROOT/sources/cxx-stl/gnu-libstdc++/[4-5].* | tail -n 1` || exit 1
#CC="$CC -I$STL_ROOT/include -I $STL_ROOT/libs/armeabi/include"

CC="$CC -fno-rtti -fno-exceptions"

然后你就可以通过$CC来编译了,例如

$CC a.c

小菜都可以这样干,只是一些庞大的auto config之类的时候,就有点问题,于是用正规的toolchain.

echo ---------------make standard GCC Tool Chain from Android NDK--------------------
ls -d ./std_toolchain && { echo ./std_toolchain already exist; exit 0; }

PLATFORM=$(basename $(ls -d $ANDROID_NDK_ROOT/platforms/android-8)); test -z $PLATFORM && exit 1
TOOLCHAIN=$(basename $(ls -d $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-[4-5].* | tail -n 1)); test -z $TOOLCHAIN && exit 1
WORK_SYSTEM=$(basename $(ls -d $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-[4-5].*/prebuilt/* | tail -n 1)); test -z $WORK_SYSTEM && exit 1
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh --install-dir=./std_toolchain --platform=$PLATFORM --toolchain=$TOOLCHAIN --system=$WORK_SYSTEM --arch=arm --verbose
export PATH="$PWD/std_toolchain/bin:$PATH"
export CC=arm-linux-androideabi-gcc

然后,该干嘛干嘛, 例如:  (注意黑体的arm-linux-androideabi-,这个才是接口之处。)

./configure --enable-cross-compile --cross-prefix=arm-linux-androideabi- --target-os=linux     --arch=arm --cpu=armv5te     --disable-doc --disable-ffplay --disable-ffprobe --disable-ffserver --disable-symver --disable-debug --disable-everything     --enable-static    --enable-protocol=pipe    --enable-filter=scale --enable-filter=crop --enable-filter=transpose    --enable-demuxer=rawvideo --enable-decoder=rawvideo    --enable-muxer=image2 --enable-muxer=image2pipe --enable-muxer=mjpeg --enable-encoder=mjpeg --enable-encoder=png    --enable-x11grab --enable-indev=x11grab    || exit 1
时间: 2024-10-24 15:19:22

拒绝ndk-build (Android Native Development Kit)的相关文章

Android Native crash日志分析

在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学的过程中还是遇到一些问题,下面一一记录,以便将来翻阅. 分析native crash 日志需要几个东西: addr2line,objdump,ndk-stack等几个工具 带symbols的so文件 log log native crash的日志都是从一行星号(*** *** *** *** ***

【转】10分钟搭建NDK的Android开发环境

原文网址:http://blog.csdn.net/u012176591/article/details/23018913 作者:金良([email protected]) csdn博客:http://blog.csdn.net/u012176591 1. 安装JDK. 1.1 去官网http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK7软件包,我下载的是jdk-7u51-windows-i586.exe.

Android JNI 开发 Demo by NDK (native develop kit)

最近终于有了一些空闲时间,所以想着把之前的Android相关的项目整理一下,前几天整理了Android OCR 的项目, 今天就干脆再整理一下 NDK JNI调用. 关于Android 中通过JNI进行本地调用的配置与开发,已经在链接 http://blog.csdn.net/watkinsong/article/details/9849973 中给出了非常详细的说明. 请仔细阅读. 同时,关于Android 作OCR的说明,也已经 在 http://blog.csdn.net/watkinso

本机开发Native Development:Invalid path for NDK (转)

打开window菜单下的preference选项.选择Android,Native Development(本地开发) 选择你的NDK安装目录.但是,这个插件目前仅支持ndk的r4和r5版本,更高版本会提示这个路径无效. 其实,插件只是需要这个参数向PATH中添加这个路径,但是不设置这个路径会导致插件工作不正常.出现Invalid path for NDK无效的原因是它验证了一个gcc.exe文件的存在.我们手动创建一个这样的gcc.exe就可以了. 手动创建目录(NDK目录)\toolchai

【NDK开发】eclipse集成环境使用NDK开发android

今天学习了一下android NDK,所以记录下来.据说NDK从r7开始自带编译器,在windows上无需配置cygwin的环境.现在我使用NDK r10来开发. 上午搭建的NDK并写了一个实例,不过并没有很好的使用eclipse的功能,如果开发的话可能比较慢. 1)首先,在eclips中配置NDK路径 在eclipse中点击菜单栏window-Perferences,配置NDK的路径.图一为NDK所在的路径.                                           

VS下真机调试android native app(以cocos2dx手游为例)

0.虽然使用手游为例,但适用于任何原生C++ NDK编译方式. 1. 先说说项目背景, cocos2dx的手游,开发一般在windows vs下开发调试,IOS下使用xcode也能很方便的调试,但android就没那么幸运了,一般调试就靠log来分析问题,总觉得效率低下.调试原生的android程序adb ,cygwin gdb-ndk,ecplise下android native app也搞过,但觉得不太方便,而且能否调试成功还得靠RP,真是调试不易,且行且珍惜.就想能不能在vs下调试andr

Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势

引言 由于项目中需要用到JNI,以前虽然在Eclipse上使用过JNI和SO 文件,移植到Android Studio上的时候是花费好些力气的,也处理过不少常见的错误,而且网上很多文章都是只写了大致的步骤,忽略了很多细节,为了让新手们少走弯路,同时也是加强自己的理解,把自己一步一步的操作记录下来. 一.Android studio引入jar 不同于eclipse的配置build path,Android Studio可以通过图形界面Project Structure来配置dependencies

GDB + gdbserver 远程调试android native code

原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuTarget: Android ICS 1.将gdbserver放入设备. 确保系统有arm-*-gdb,及存在设备端将要运行的gdbserver,gdbserver可以由google ndk中获取,在ndk的如下目录可以找到这个文件: 点击(此处)折叠或打开 android-ndk-r8/toolc

[原]Android Native Debug

1,安装adt插件,cdt插件2,SDK目录配置: Eclipse文件菜单选择“Window”--->“Preferences”--->“Android”--->设置“SDK Location”--->”Browse”选择SDK目录即可. 如下图: NDK目录配置: 设置完SDK后还需在“Android”配置项上设置下“NDK”,选择NDK后,有一个选项“NDK Location”,这里配置NDK根目录.3,设置build参数,在project->properties->