Linux下交叉编译andorid-Arm架构的脚本 - sbw Blog

Linux下交叉编译andorid-Arm架构的脚本

来源: 石博文博客 | 浏览: 6036 | 评论: 0 发表时间: 2014-03-01

由于在AndroidArm架构下不方便编译一些库,所以经常使用交叉编译的方法,在Windows或者Linux下面编译用于嵌入式Arm架构的库文件.由于交叉编译时各种参数设置非常多,所以石博文写了一个基本通用的小脚本,用于快速配置一些参数,实际使用时,还需要按编译需求和系统环境作一些修改.



在Linux下交叉编译Android-Arm架构的库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
 
# 架构
ARCH="arm-linux"
 
# android 目录
ROOT=/opt/android-ndk/platforms/android-9/arch-arm
BASE_PATH=$ROOT/usr
PREFIX=/opt/android-ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi
 
export CC=$PREFIX-gcc
export CXX=$PREFIX-g++
export LD=$PREFIX-ld
export NM="$PREFIX-nm -B"
export AR=$PREFIX-ar
export RANLIB=$PREFIX-ranlib
export STRIP=$PREFIX-strip
export OBJCOPY=$PREFIX-objcopy
export LN_S="ln -s"
 
export CFLAGS="-Wall -O2 -funroll-loops -I$BASE_PATH/include --sysroot=$ROOT"
export CPPFLAGS="-I$BASE_PATH/include --sysroot=$ROOT"
export CXXFLAGS="-I$BASE_PATH/include --sysroot=$ROOT"
export LDFLAGS="-L$BASE_PATH/lib --sysroot=$ROOT"
 
./configure --host=$ARCH --prefix=$ROOT/usr

设置了上面这些变量后,执行configure脚本就会自动调整为交叉编译(如果这个库支持的话),当然,有些库的编译方式不是使用configure或者make,那就要手动来执行,不过参数的设置应该是差不多的.在configure脚本执行完成,没有错误后,就可以开始编译了:

1
sudo make && make install

由于设置了sysroot,所以这时install的目录就不是Linux系统的目录了,而是Android虚拟机的目录.




没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml