切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Sqlite
SQLITE3在tiny6410上的移植
SQLITE3在tiny6410上的移植
2020-07-12
Sqlite
前端之家
前端之家
收集整理的这篇文章主要介绍了
SQLITE3在tiny6410上的移植
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下载
sql
ite最新版本3.7.9 http://www.
sql
ite.org/download.html 源码包:
sql
ite-autoconf-3071400.tar.gz 解压源码包到/opt目录下: #tar xvzf
sql
ite-autoconf-3071400.tar.gz –C /opt/ 建立make install目录: # mkdir /opt/build 进入解压出得
文件
夹中: # cd /opt/
sql
ite-autoconf-3070900 执行configure命令:
生成
Makefile
文件
: # ./configure –-host=arm-linux –prefix=/opt/build
生成
Makefile
文件
后,执行make命令:: # make #make install 完成之后可以发现,之前所建目录/opt/build下
生成
bin include lib share四个目录。主要用到的
文件
有./bin/
sql
ite3 ./include/
sql
ite3.h以及 ./lib/下的库
文件
。 bin
文件
夹下的
sql
ite3是
sql
ite可执行应用程序下载到板子Linux系统下的/bin目录或者/usr/bin目录下并
添加
文件
可执行权限。在板子Linux系统命令行下执行:# chmod +x
sql
ite3 进入
sql
ite命令行,可以实现对
数据库
的管理。 [root@FriendlyARM plg]#
sql
ite3
sql
ite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter
sql
statements terminated with a ";"
sql
ite> ./include/
sql
ite3.h定义了
sql
ite的API接口会在有关
sql
ite的c
文件
交叉编译时用到。 ./lib/
文件
夹下是有关
sql
ite的静态
链接
库和动态
链接
库 # ls lib/ lib
sql
ite3.a lib
sql
ite3.la lib
sql
ite3.so lib
sql
ite3.so.0 lib
sql
ite3.so.0.8.6 pkgconfig 其中lib
sql
ite3.so和lib
sql
ite3.so.0都是lib
sql
ite3.so.0.8.6的软
链接
文件
。真正需要下载到板子目录/lib下的动态库是lib
sql
ite3.so.0.8.6。下载到板子后还需对它建立软
链接
文件
因为可执行程序寻找的动态
链接
库的名字为lib
sql
ite3.so.0。 # ln -s /lib/lib
sql
ite3.so.0.8.6 /lib/lib
sql
ite3.so.0 到此,
sql
ite的移植工作已经完成,下面进行测试。 测试程序test_
sql
ite.c如下: 1. #include <st
dio
.h> 2. #include <
sql
ite3.h> 3. 4. static int callback(void *NotUsed,int argc,char **argv,char **azColName) 5. { 6. int i; 7. for(i=0; i<argc; i++) 8. { 9. printf("%s = %s\n",azColName[i],argv[i] ? argv[i] : "NULL"); 10. } 11. printf("\n"); 12. return 0; 13. } 14. 15. int main(int argc,char **argv) 16. { 17.
sql
ite3 *db; 18. char *zErrMsg = 0; 19. int rc; 20. if( argc!=3 ) 21. { 22. fprintf(stderr,"Usage: %s DATABASE
sql
-STATEMENT\n",argv[0]); 23. } 24. rc =
sql
ite3_open(argv[1],&db); 25. if( rc ) 26. { 27. fprintf(stderr,"Can't open database: %s\n",
sql
ite3_errmsg(db)); 28.
sql
ite3_close(db); 29. } 30. rc =
sql
ite3_exec(db,argv[2],callback,&zErrMsg); 31. if( rc!=
sql
ITE_OK ) 32. { 33. fprintf(stderr,"
sql
error: %s\n",zErrMsg); 34. } 35.
sql
ite3_close(db); 36. return 0; 37. } 动态编译: # arm-linux-gcc -o test test_
sql
ite.c -I /opt/build/include/ -L /opt/build/lib/ -l
sql
ite3 注:-I制定优先
搜索
头
文件
路径: -L制定编译的时候,优先
搜索
库的路径。 下载到板子上执行: [root@FriendlyARM plg]#./test xyz.db "create table tbl0(name varchar(10),number smallint);" [root@FriendlyARM plg]#./test xyz.db "insert into tbl0 values('cyc',1);" [root@FriendlyARM plg]#./test xyz.db "insert into tbl0 values('dzy',2);" [root@FriendlyARM plg]#./test xyz.db "select * from tbl0;" name = cyc number = 1 name = dzy number = 2 测试成功! 静态编译: # arm-linux-gcc -o test test_
sql
ite.c -I /opt/build/include/ -L /opt/build/lib/ -static -l
sql
ite3 /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `unixDlSym': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:29926: undefined reference to `dlsym' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `pthreadMutexLeave': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17807: undefined reference to `pthread_mutex_unlock' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `pthreadMutexTry': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17769: undefined reference to `pthread_mutex_trylock' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `pthreadMutexEnter': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17723: undefined reference to `pthread_mutex_lock' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `pthreadMutexFree': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17680: undefined reference to `pthread_mutex_destroy' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `pthreadMutexAlloc': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17654: undefined reference to `pthread_mutex_init' /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17637: undefined reference to `pthread_mutexattr_init' /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17638: undefined reference to `pthread_mutexattr_settype' /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17639: undefined reference to `pthread_mutex_init' /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:17640: undefined reference to `pthread_mutexattr_destroy' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `unixDlClose': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:29930: undefined reference to `dlclose' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `unixDlError': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:29899: undefined reference to `dlerror' /opt/build/lib//lib
sql
ite3.a(
sql
ite3.o): In function `unixDlOpen': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:29885: undefined reference to `dlopen' collect2: ld returned 1 exit status
错误
信息中
提示
有线程接口
函数
,需要线程的动态
链接
库,要加入-lpthread选项。在网上查找按照网友提供的资料dlopen(),dlclose(),dlerror(),dlsym()
函数
在头
文件
#include <dlfcn.h>中,同样需要
添加
编译选项-ldl。 # arm-linux-gcc -o test test.c -I /opt/build/include/ -L /opt/build/lib -static -l
sql
ite3 -lpthread –ldl 编译成功:但有一个warning,没有
解决
,暂时没有发现这个警告对程序影响。 /opt/build/lib/lib
sql
ite3.a(
sql
ite3.o): In function `unixDlOpen': /opt/
sql
ite-autoconf-3070900/
sql
ite3.c:29885: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking 静态编译与动态编译的差别在于:可执行
文件
较大,即使板子上没有移植动态
链接
库lib
sql
ite3.so.0,程序也同样可以执行。
上一篇:sqlite3文件损坏的几种可能(databa
下一篇:SQLite操作数据库全过程代码范本
猜你在找的Sqlite相关文章
SQLite学习笔记
安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压...
作者:前端之家 时间:2021-01-12
windows上如何安装Sqlite
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Wi...
作者:前端之家 时间:2020-11-05
【Android数据存储】SQLite使用实例(附源码)
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 ...
作者:前端之家 时间:2020-08-07
SQLite数据库管理
作者:前端之家 时间:2020-08-07
SQLite3常用命令
作者:前端之家 时间:2020-08-07
加密你的SQLite
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite 这么娇小可爱,不多了解点都不行啊
(点击上方蓝字,快速关注我们) 作者:空之境界 网址:http://supermao.cn/sqlitezhe-yao-...
作者:前端之家 时间:2020-08-07
SQLITE3 使用总结
SQLITE3 使用总结 投稿:hebedich 字体:[ 增加 减小] 类型:转载 时间:2014-08-19 Sql...
作者:前端之家 时间:2020-08-07
编程分类
MySQL
MsSQL
Oracle
Sqlite
Postgre SQL
Mariadb
MongoDB
NoSQL
HBase
JDBC
最新文章
• SQLite学习笔记
• windows上如何安装Sqlite
• 【Android数据存储】SQLit
• SQLite数据库管理
• SQLite3常用命令
• 加密你的SQLite
• 加密你的SQLite
• SQLite这么娇小可爱,不多
• SQLite这么娇小可爱,不多
• SQLite 这么娇小可爱,不多
热门标签
更多 ►
undo日志
persistent-c
mysql-error-
postal-code
sql-match-al
mysql-5.6
mysql-8.0
database-tri
安装路径
系统错误
data_dir
丢失文件
主从同步
sql_mode
数据库目录
匿名用户
character_se
ID归零
数据库位置
查询表
重复字段
查询字段
截断日志
SUSPECT
7391
Remote Serve
Linked Serve
玄学问题
登录不上
开启远程访问