mips交叉编译:SQLite3
交叉编译程序时,报错如下:
cannot find -lsqlite3
提示没有sqlite3的库。需要我们交叉编译一下。
下载页面
https://www.sqlite.org/download.html (下载sqlite-autoconf-3330000.tar.gz安装包)
tar -vxf sqlite-autoconf-3330000.tar.gz
cd sqlite-autoconf-3330000/
mkdir __install
./configure --host=mips-linux --prefix=$PWD/__install CC=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-gcc
make -j4
make install
最近在编译龙芯3A5000,老的sqlite3解压文件里面的配置文件太旧,找不到loongarch64-linux,现在增加方法,使用下面两条命令获取新的配置文件
wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
对应的--host 修改成现在的loongarch
./configure --host=loongarch64-linux --prefix=$PWD/install CC=/opt/loongarch64-linux-gnu/bin/loongarch64-linux-gnu-gcc
查看交叉编译出来的库
[root@cc __install]# cd /opt/sqlite-autoconf-3330000/__install
[root@cc __install]# file ./lib/*
./lib/libsqlite3.a: current ar archive
./lib/libsqlite3.la: libtool library file, ASCII text
./lib/libsqlite3.so: symbolic link to libsqlite3.so.0.8.6
./lib/libsqlite3.so.0: symbolic link to libsqlite3.so.0.8.6
./lib/libsqlite3.so.0.8.6: ELF 64-bit LSB shared object, MIPS, MIPS64 rel2 version 1 (SYSV), dynamically linked, with debug_info, not stripped
./lib/pkgconfig: directory
可以看到是mips架构的。
拷贝库到交叉编译里:
cp -a ./lib/* /opt/gcc-4.9.3-64-gnu/mips64el-linux/lib
cp -a ./include/* /opt/gcc-4.9.3-64-gnu/mips64el-linux/include/
-a:保持源文件的原有结构和属性;
再次编译程序即可。