天天看点

arm sqlite3移植

说明:网上指导的交叉编译存在,移植后不能正常使用方向键和删除键的bug,根本原因是交叉编译缺少了关联库

参考博客 

移植遇到的坑 

readline的移植

环境

操作系统:Ubuntu16.04

arm芯片:imx6ull

arm linux:4.1.15

交叉编译器:arm-linux-gnueabihf

一、准备步骤

sqlite3下载

博主下的是当前最新的sqlite-autoconf-3350500.tar.gz,推荐选择autoconf版本,而不是amalgamation版本。autoconf会自动检测readline、nucurses等。

ncurses下载

readline下载

ubuntu安装libeditline-dev

sudo apt-get install libeditline-dev

editline下载(网上找到相关的源码包,但交叉编译后并不是sqlite3需要的editline/readline.h,这边请大神们指正,在此先谢谢各位大神)

二、交叉编译

tar zxvf ncurses-6.2.tar.gz

cd  ncurses-6.2

 ./configure --prefix=$PWD/install --host=arm-linux-gnueabihf CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

make

make install
           

make install 会出现错误(正确的安装方式可以自行百度,本篇移植只需要libncurses.so.6.2),看看当前目录下install的lib中是否存在libncurses.so.6.2及其链接文件libncurses.so.6与libncurses.so。用file指令验证下libncurses.so.6.2是否为arm版本。

在install目录下,sudo cp -pR * /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/

将arm版本的库与头文件放到交叉编译器的目录下,同时将install/lib中的内容拷贝到arm的/usr/lib下

tar zxvf readline-8.1.tar.gz

cd readline-8.1

//添加交叉编译头文件与库
 ./configure --prefix=$PWD/install --host=arm-linux-gnueabihf CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CPPFLAGS=-I/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/include LDFLAGS=-L/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib

make

make install
           

在install目录下,sudo cp -pR * /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/

将arm版本的库与头文件放到交叉编译器的目录下,同时将install/lib中的内容拷贝到arm的/usr/lib下

把/usr/include/下/editline目录(由libeditline-dev生成)拷贝到/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/include

tar zxvf sqlite-autoconf-3350500.tar.gz

cd sqlite-autoconf-3350500

 ./configure --prefix=$PWD/install --host=arm-linux-gnueabihf CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CPPFLAGS=-I/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/include LDFLAGS=-L/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib

make

make install
           
arm sqlite3移植

配置完确认下红框中的内容,然后进行make&&make install

然后将install中的内容拷贝到arm中

install/bin 拷贝到/usr/bin,install/lib拷贝到/usr/lib

在arm中进行验证

继续阅读