环境:
windows xp+vmware+redhat(ubuntu)
说明:本篇所述环境也是Android原生(Native)C(JNI)开发的环境
1,先下载个交叉编译工具链版本
http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057选择最新版本进入下载页面后,选择Advanced Packages的IA32 GNU/Linux TAR下载后文件名为arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
2,上传到/usr/local/后解压tar jxvfarm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 到一个arm-2010.09
3,测试,进入到/usr/local/arm-2010.09/bin目录下,创建一个main.c文件,
main.c内容
#include <stdio.h>
int main()
{
int i=0;
printf("%d/n",i);
return;
}
执行./arm-none-linux-gnueabi-gcc main.c
无报错,生成a.out文件
执行 ././arm-none-linux-gnueabi-gcc -v
显示版本信息 4.5.1
可以啦
修改/etc/profile文件的PATH,将当前目录/usr/local/arm-2010.09-50/bin加入到PATH里去
source /boot/.bashrc 使修改立即生效
实例测试:
进入工作目录/home/android/jniTest
创建文件main.c,文件内容
#include <stdio.h>
int main()
{
int i=0;
printf("hi ym012 %d/n",i);
return;
}
arm-none-linux-gnueabi-gcc -static main.c -o main
启动Android模拟器,先创建 /dev/sample目录,再将编译好的main上传上去,最后将main改成可执行的。其命令如下
adb shell mkdir /dev/sample //在模拟器下创建一个目录
adb push main /dev/sample/main //将main文件上传到/dev/sample/main
adb shell chmod 777 /dev/sample/main //修改成可执行文件
再进入命令行模式,进入Android的模拟器的/dev/sample目录执行hello:
adb shell
#cd /dev/sample
#./hello //执行hello
运行结果如下:
hi ym012 0
_______________
总结:成功了!
分享到:
相关推荐
《Android C 交叉编译工具链:arm-linux-androideabi-4.9》 在Android应用开发领域,尤其涉及到底层系统级编程时,我们常常需要用到C或C++语言。然而,Android设备运行的是Linux内核,而开发环境通常是在Windows上...
标题 "aarch64-linux-android-4.9(windows-64位)" 指的是一个特定版本的Android NDK工具链,适用于64位Windows操作系统,用于编译针对AArch64架构(也称为ARM64)的Linux Android应用程序。NDK(Native ...
- **编译工具链**:包括GCC和Clang等编译器,用于将C/C++源码编译为ARM、x86等架构的机器码。 - **构建系统**:如Android.mk和CMakeLists.txt,用来定义如何构建原生库。 - **库支持**:提供了对Android系统的API...
它包含了一系列的交叉编译工具链,能够将针对不同Android平台的C/C++源代码编译成ARM、x86、MIPS等各种架构的目标代码。这些工具链包括GCC和Clang两种编译器,以及GDB等调试工具,确保了开发过程的灵活性和高效性。 ...
在这个例子中,“arm-linux-androideabi-4.7”就是这样一个交叉编译工具链,它包含了针对ARM架构的Android设备所需的编译器、链接器和其他工具。这里的“arm”代表目标架构为ARM,"linux-androideabi"则表示它是针对...
./configure --target=arm-linux-androideabi-4.9 --prefix=$HOME/your/output/path --disable-examples --disable-unit-tests --enable-pic ``` 其中,`--target`指定了交叉编译的目标,`--prefix`定义了输出...
标题"Mipsel-linux-android-4.9"指向的是一个针对MIPS架构的交叉编译工具链,用于构建在Linux Android环境下运行的应用程序。MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机...
1. **编译工具链**:包括用于构建原生代码的GCC和Clang编译器,以及链接器、汇编器等。 2. **平台SDK**:针对不同Android API级别的头文件和库,允许开发者针对不同Android版本进行编译。 3. **JNI接口**:Java和...
5. **GCC编译器**:"arm-linux-androideabi-4.7"是针对Android的ARM架构的GNU Compiler Collection (GCC) 版本,用于将源代码编译为能够在Android设备上运行的目标代码。 6. **库文件列表**: - `libevent.a`:这...
【C/C++ Android开发环境配置】是Android原生开发中的重要环节,主要涉及三个关键工具:Android NDK、Android SDK和Ant。以下是这些工具的详细配置步骤和使用方法。 一、Android NDK NDK(Native Development Kit)...
【Android Native GCC Demo】是一个专为Android平台设计的示例项目,主要展示了如何在Android上使用GNU Compiler Collection (GCC) 进行原生代码开发。GCC是一个强大的编译器套件,支持多种编程语言,包括C、C++、...
./configure --target-os=linux --arch=arm --cpu=cortex-a8 --cross-prefix=/path/to/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot=/path/to/ndk/...
- **工具链**:NDK包含一系列交叉编译工具,如gcc和clang,用于将源代码编译为针对不同架构(如armeabi-v7a、arm64-v8a、x86、x86_64等)的本地代码。 - **平台头文件和库**:这些文件提供了Android API的C/C++接口...
4. **工具链**:NDK包含了一系列编译、链接和其他工具,如arm-linux-androideabi-gcc(此版本的GCC)和clang,用于构建和优化针对不同Android架构的本地代码。 5. **预编译库**:NDK附带了一些预编译的库,如...
1. **编译工具链**:NDK包含了一套针对不同架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)的编译工具,可以将C/C++源代码编译为适合Android设备的二进制库。 2. **预编译库**:NDK包含了一些预编译的库,如...
- `--cross-prefix=<your-ndk-path>/toolchains/arm-linux-androideabi-<gcc-version>/prebuilt/<host-os>/bin/arm-linux-androideabi-` - `--sysroot=<your-ndk-path>/platforms/android-<api-level>/arch-arm` ...
NDK还提供了预编译的工具链,包含了特定平台的编译器、链接器和其他工具,使得开发者可以在本地环境编译针对Android的代码。 **Android ABI(Application Binary Interface)** 由于Android支持多种架构(如armeabi...
--cc=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$HOST_TAG/bin/arm-linux-androideabi-gcc \ --cross-prefix=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$HOST_TAG/bin/arm-linux-android...
### 使用Android NDK编译FFmpeg与实现RTSP手机视频功能 #### 一、前言 随着移动设备处理能力的不断增强,越来越多的应用程序开始利用原生的C/C++代码来提高性能,尤其是在多媒体处理领域。FFmpeg是一款强大的跨平台...
总的来说,Linux开发环境中的工作涉及多个层面,从编写C语言代码到利用Linux工具链进行编译和调试,再到理解和适配ARM架构,以及可能的安卓原生开发。这需要开发者具备扎实的理论知识和实践经验,才能在嵌入式领域...