Linux:交叉编译sqlite3

匿名 (未验证) 提交于 2019-12-02 21:53:52
版权声明:版权所有!https://blog.csdn.net/weixin_38184741 https://blog.csdn.net/weixin_38184741/article/details/86544853

背景:

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

/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../lib/gcc/aarch64-linux-gnu/6.3.0/../../../../aarch64-linux-gnu/bin/ld: cannot find -lsqlite3 collect2: error: ld returned 1 exit status make: *** [client] Error 1  

提示没有sqlite3的库。需要我们交叉编译一下。

下载地址:

https://sqlite.org/2018/sqlite-autoconf-3260000.tar.gz

编译过程

tar -vxf sqlite-autoconf-3260000.tar.gz  cd sqlite-autoconf-3260000/ mkdir __install  ./configure --host=arm-linux --prefix=$PWD/__install CC=aarch64-himix100-linux-gcc make  make install 

查看交叉编译出来的库:

root@ubuntu:/neo/arm/sqlite3/sqlite-autoconf-3260000/__install# file ./lib/*  ./lib/libsqlite3.a:        current ar archive ./lib/libsqlite3.la:       libtool library file,  ./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, ARM aarch64, version 1 (SYSV), dynamically linked, not stripped ./lib/pkgconfig:           directory  root@ubuntu:/neo/arm/sqlite3/sqlite-autoconf-3260000/__install#  

确实是ARM架构下的。

拷贝库到交叉编译链:

cp -af ./lib/* /opt/hisi-linux/x86-arm/aarch64-himix100-linux/target/usr/lib cp -af ./include/* /opt/hisi-linux/x86-arm/aarch64-himix100-linux/target/usr/include/ 

其中 :

-a:保持源文件的原有结构和属性;

-f:强制覆盖已经存在的目标文件,而不提示用户进行确认。

完成

两个报错:

下面的报错是因为编译出来的库文件,架构不对应。

/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../lib/gcc/aarch64-linux-gnu/6.3.0/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible  /opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../target/usr/lib/libsqlite3.so when searching for -lsqlite3  

下面的报错是因为编译器正在运行两次。可以通过重新配置configure文件,来解决。

/usr/bin/ld: .libs/sqlite3.o: Relocations in generic ELF (EM: 183) 

参考链接:
https://blog.csdn.net/wonxxx/article/details/25072745

https://blog.csdn.net/shaochat/article/details/40857717

文章来源: https://blog.csdn.net/weixin_38184741/article/details/86544853
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!