openwrt 移植sqlite3
openwrt sqlite3移植一、配置支持数据库1、在工程源码下执行make menuconfig 在界面里面选上数据库支持 Utilities-----> database------> sqlite2-cli............ SQLite (v2.x)database engine (cli) 二、修改数据库版本1、Openwrt 支持的数据版本是sqlite2的,sqlite2的接口和sqlite3接口差别很大 2、修改支持sqlite3,vim feeds/packages/libs/sqlite2/Makefile 将版本号修改为sqlite3和编译之后拷贝的库的名字 PKG_NAME:=sqlite3 PKG_VERSION:=3.6.17 PKG_RELEASE:=3 详细的脚本请参考(注:直接拷贝脚本进去编译有可能会出现语法错误) include $(TOPDIR)/rules.mk PKG_NAME:=sqlite3 PKG_VERSION:=3.6.17 PKG_RELEASE:=3 PKG_SOURCE:=sqlite-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.sqlite.org/ PKG_MD5SUM:=838dbac20b56d2c4292e98848505a05b PKG_BUILD_DIR:=$(BUILD_DIR)/sqlite-$(PKG_VERSION) PKG_BUILD_DEPENDS:=libncurses libreadline PKG_FIXUP:=autoreconf PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk TARGET_CFLAGS += $(FPIC) define Package/sqlite2/Default SUBMENU:=database TITLE:=SQLite (v2.x) database engine URL:=http://www.sqlite.org/ endef define Package/libsqlite2 $(call Package/sqlite2/Default) SECTION:=libs CATEGORY:=Libraries TITLE+= (library) endef define Package/libsqlite2/description SQLite is a small C library that implements a self-contained,embeddable, zero-configuration SQL database engine. This package contains the SQLite (v2.x) shared library,used by otherprograms. endef define Package/sqlite2-cli $(call Package/sqlite2/Default) SECTION:=utils CATEGORY:=Utilities DEPENDS:=+libncurses +libreadline +libpthread TITLE+= (cli) SUBMENU:=database endef define Package/sqlite2-cli/description SQLite is a small C library that implements a self-contained, zero-configuration SQL database engine. This package contains a terminal-based front-end to the SQLite (v2.x)library that can evaluate queries interactively and display the results in multiple formats. endef define Build/Configure $(call Build/Configure/Default, --enable-shared --enable-static , config_BUILD_CC="$(HOSTCC)" config_BUILD_CFLAGS="-O2" config_TARGET_CC="$(TARGET_CC)" config_TARGET_CFLAGS="$(TARGET_CFLAGS)" config_TARGET_READLINE_INC="$(TARGET_CPPFLAGS)" config_TARGET_READLINE_LIBS="$(TARGET_LDFLAGS)-lreadline -lncurses" config_TARGET_TCL_INC="-DNO_TCL=1" ) endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/sqlite3.h $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsqlite3.{a,so*} $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/sqlite3.pc $(1)/usr/lib/pkgconfig/ endef define Package/libsqlite2/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsqlite3.so.* $(1)/usr/lib/ endef define Package/sqlite2-cli/install $(INSTALL_DIR) $(1)/usr/bin endef #$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsqlite3.so.*$(1)/usr/lib/ #$(INSTALL_BIN)$(PKG_INSTALL_DIR)/usr/bin/sqlite $(1)/usr/bin/ $(eval $(call BuildPackage,libsqlite2)) $(eval $(call BuildPackage,sqlite2-cli)) 三、库依赖关系1、由于sqlite3需要用到线程库,直接编译会出现如下错误 missing dependencies libpthread.so.0 2、需要添加依赖线程库,在Makfile里面的DEPENDS添加libpthread 的支持 define Package/sqlite2-cli $(call Package/sqlite2/Default) SECTION:=utils CATEGORY:=Utilities DEPENDS:=+libncurses +libreadline +libpthread TITLE+= (cli) SUBMENU:=database endef 3、再次编译,如果还出现错误,说面当前openwrt系统没有编译libpthread进去,需要到执行make menuconfig 配置支持 Basesystem -------> <*>libthread……………………POSIX thread library (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 红宝石 – 不能安装Nokogiri宝石,“libxml / parser.h”没有
- [每日一题] OCP1z0-047 :2013-08-24 ? FLASHBACK―TABLE/PR
- PostgreSQL从菜鸟到专家 第二章关系数据库原理
- c# – String对象如何在没有new关键字或构造函数的情况下分
- 敏捷实践总结(二)——技术实现-联动菜单并保持数据的Demo
- Ajax获取到数据放入echarts里不显示的原因分析及解决办法
- 如何在Ruby中删除4个字节的utf-8字符?
- 在oracle数据库中,如何为用户定义类型的参数指定默认值?
- [elixir! #0030] 在 elixir 项目中使用 RiakKV (1) -- Riak
- Swift学习笔记。