交叉编译程序时,报错如下:

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:保持源文件的原有结构和属性;

再次编译程序即可。

 

相关文章:

  • 2022-12-23
  • 2021-12-19
  • 2022-12-23
  • 2021-11-04
  • 2021-09-22
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
相关资源
相似解决方案