为实现项目功能,采用轻量的数据库sqlite3,需要完成在开发板的移植。需要注意的地方在虚拟机中需要使用交叉编译器arm-linux-gnueabihf-gcc,然后按需要将其库文件和sqlite3程序分别复制到开发板/lib和/bin目录下即可,最终在开发板界面输入sqlite3即可进入程序。
本文参考了以下链接内文章和sqlite3官方文档install.txt,对文章内的错误进行修正。其次,针对在/opt目录下调用交叉编译失败的问题进行了分析。
首先,根据下图所示文档,我们在这无需配置target,将原configure配置命令修改为./configure --host=arm-linux-gnueabihf --prefix=/opt/build
然后,这个命令在/opt目录下不能直接运行,显示没有权限,加sudo使用root权限可执行,也造成了后续的问题
1、sudo ./configure --host=arm-linux-gnueabihf --prefix=/opt/build
2、sudo make
此时使用file sqlite32命令查看文件详情,发现是x86平台的文件,回看log发现根本没调用交叉编译器,直接使用了gcc进行编译,所以未能得到ARM平台文件。原因是arm-linux-gcc是在~/.bashrc导出的,因此对root账户是不生效的。
更换到~/目录下进行之前步骤的操作,可以正常使用交叉编译器,完成移植。