`
tansitongba
  • 浏览: 503719 次
文章分类
社区版块
存档分类
最新评论

搭建arm-linux-gcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)

 
阅读更多

环境:

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
_______________
总结:成功了!

分享到:
评论

相关推荐

    arm-linux-androideabi-4.9.7z

    《Android C 交叉编译工具链:arm-linux-androideabi-4.9》 在Android应用开发领域,尤其涉及到底层系统级编程时,我们常常需要用到C或C++语言。然而,Android设备运行的是Linux内核,而开发环境通常是在Windows上...

    aarch64-linux-android-4.9(windows-64位)

    标题 "aarch64-linux-android-4.9(windows-64位)" 指的是一个特定版本的Android NDK工具链,适用于64位Windows操作系统,用于编译针对AArch64架构(也称为ARM64)的Linux Android应用程序。NDK(Native ...

    android-ndk(android-ndk-r25b-linux.zip)

    - **编译工具链**:包括GCC和Clang等编译器,用于将C/C++源码编译为ARM、x86等架构的机器码。 - **构建系统**:如Android.mk和CMakeLists.txt,用来定义如何构建原生库。 - **库支持**:提供了对Android系统的API...

    android-ndk-r20-linux-x86_64.zip

    它包含了一系列的交叉编译工具链,能够将针对不同Android平台的C/C++源代码编译成ARM、x86、MIPS等各种架构的目标代码。这些工具链包括GCC和Clang两种编译器,以及GDB等调试工具,确保了开发过程的灵活性和高效性。 ...

    linux打androidso库工具

    在这个例子中,“arm-linux-androideabi-4.7”就是这样一个交叉编译工具链,它包含了针对ARM架构的Android设备所需的编译器、链接器和其他工具。这里的“arm”代表目标架构为ARM,"linux-androideabi"则表示它是针对...

    交叉编译libvpx源码后 生成的头文件和库 android使用

    ./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

    标题"Mipsel-linux-android-4.9"指向的是一个针对MIPS架构的交叉编译工具链,用于构建在Linux Android环境下运行的应用程序。MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机...

    android_ndk_linux-r64位下载

    1. **编译工具链**:包括用于构建原生代码的GCC和Clang编译器,以及链接器、汇编器等。 2. **平台SDK**:针对不同Android API级别的头文件和库,允许开发者针对不同Android版本进行编译。 3. **JNI接口**:Java和...

    libevent对应Android下的库文件

    5. **GCC编译器**:"arm-linux-androideabi-4.7"是针对Android的ARM架构的GNU Compiler Collection (GCC) 版本,用于将源代码编译为能够在Android设备上运行的目标代码。 6. **库文件列表**: - `libevent.a`:这...

    android-ndk-r17c-windows-x86_64.zip

    4. **工具链**:NDK包含了一系列编译、链接和其他工具,如arm-linux-androideabi-gcc(此版本的GCC)和clang,用于构建和优化针对不同Android架构的本地代码。 5. **预编译库**:NDK附带了一些预编译的库,如...

    c/c++Android开发环境配置

    【C/C++ Android开发环境配置】是Android原生开发中的重要环节,主要涉及三个关键工具:Android NDK、Android SDK和Ant。以下是这些工具的详细配置步骤和使用方法。 一、Android NDK NDK(Native Development Kit)...

    Android native GCC demo

    【Android Native GCC Demo】是一个专为Android平台设计的示例项目,主要展示了如何在Android上使用GNU Compiler Collection (GCC) 进行原生代码开发。GCC是一个强大的编译器套件,支持多种编程语言,包括C、C++、...

    ffmepg的安卓arm(armeabi-v7a)版本

    ./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/...

    android-ndk(android-ndk-r26b-darwin.zip)

    - **工具链**:NDK包含一系列交叉编译工具,如gcc和clang,用于将源代码编译为针对不同架构(如armeabi-v7a、arm64-v8a、x86、x86_64等)的本地代码。 - **平台头文件和库**:这些文件提供了Android API的C/C++接口...

    android成功编译ffmpeg0.6

    - `--cross-prefix=&lt;your-ndk-path&gt;/toolchains/arm-linux-androideabi-&lt;gcc-version&gt;/prebuilt/&lt;host-os&gt;/bin/arm-linux-androideabi-` - `--sysroot=&lt;your-ndk-path&gt;/platforms/android-&lt;api-level&gt;/arch-arm` ...

    android-ndk(android-ndk-r25b-windows.zip)

    1. **编译工具链**:NDK包含了一套针对不同架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)的编译工具,可以将C/C++源代码编译为适合Android设备的二进制库。 2. **预编译库**:NDK包含了一些预编译的库,如...

    android编译器 gcc,g++,c/c++编译器和插件

    NDK还提供了预编译的工具链,包含了特定平台的编译器、链接器和其他工具,使得开发者可以在本地环境编译针对Android的代码。 **Android ABI(Application Binary Interface)** 由于Android支持多种架构(如armeabi...

    armeabi-v7a.rar

    --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...

    MuPDF1.0编译生成的libmupdf.so文件

    在Windows XP环境下,可能使用MinGW或者Cygwin等工具链来模拟Linux环境进行编译。而在Ubuntu 10.10上,可以直接使用系统的GCC和G++编译器。两者都成功编译出libmupdf.so,说明库具有良好的跨平台性。 6. **集成到...

    用Android_NDK编译FFmpeg,RTSP手机视频

    ### 使用Android NDK编译FFmpeg与实现RTSP手机视频功能 #### 一、前言 随着移动设备处理能力的不断增强,越来越多的应用程序开始利用原生的C/C++代码来提高性能,尤其是在多媒体处理领域。FFmpeg是一款强大的跨平台...

Global site tag (gtag.js) - Google Analytics