1. 下载软件包
从linaro的网站下载预编译二进制包,地址:https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10。
注意选择的版本,要使用linux下的哦。选择这个:gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2
2. 解压
解压gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz 到 ~/arm-cross-toolchain/目录下
3. 设置环境变量
~$ vi .bashrc
在最后添加如下 2 行:
PATH=$PATH:/home/lxl/arm-cross-toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin
export PATH
请注意,第一行的$PATH后面是英文冒号,而冒号后面是你的cross-toolchain的可执行文件目录(bin目录)的绝对路径。 这两句的意思就是将cross-toolchain的可执行文件路径加入系统环境变量PATH中。
4. 使环境变量 生效
~$ source .bashrc
5. 测试
在Ubuntu 16.04 64bit上搭建的android编译环境交叉编译SDK的openssl-1.0.2j生成库,但是使用ndk-build时,却出现了“Fatal error: Invalid -march= option: `armv5te'”错误
用 android-ndk-r10e 的交叉编译链在Ubuntu 16.04 32bit系统上没有问题,后来百度搜索后尝试了各种方法还是找不到问题所在,最后在 CSDN问答 这边找到了相关描述,果不其然,升级了交叉编译链 android-ndk-r12b 后编译就通过了。
1、下载源码,解压缩sqlite-autoconf-3300100.tar.gz2、进入解压目录,执行:
#:./configure --host=arm CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ --prefix=/usr
其中--host=要运行程序的主机
CC/CXX为用到的交叉编译工具链
--prefix=安装目录
3、make
将在当前文件目录下,自动生成可执行文件sqlite3及静态库文件sqlite3.a文件;
4、sudo make install
此命令会将可执行文件及静态库文件拷贝至安装目录中(也可手动拷贝)
5、以上步骤生成的可执行文件包含大量调试信息,文件比较大,可使用strip命令去掉其中的调试信息;
#:arm-linux-gnueabi-strip sqlite3
6、生成动态库文件:
arm-linux-gnueabi-gcc sqlite3.c -lpthread -ldl -fPIC-shared-o libsqlite3.so
交叉编译sqlite3,生成动态库
标签:ref gcc host pthread strip config 安装 目录 工具链
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)