加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

openwrt 移植sqlite3

发布时间:2020-12-12 19:49:49 所属栏目:百科 来源:网络整理
导读:openwrt sqlite3移植 一、配置支持数据库 1、在工程源码下执行make menuconfig 在界面里面选上数据库支持 Utilities----- database------ sqlite2-cli............ SQLite (v2.x)database engine (cli) 二、修改数据库版本 1、Openwrt 支持的数据版本是sqlit

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读