0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移植sqlite交叉編譯sqlite3

嵌入式加油站 ? 來源:嵌入式加油站 ? 2023-07-10 11:29 ? 次閱讀

【前言】

SQLite是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中, 是一款輕量輕級數(shù)據(jù)庫。它是D.RichardHipp建立的公有領(lǐng)域項目。不像常見的客戶-服務(wù)器范例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。

所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都在宿主主機上存儲在一個單一的文件中。它的簡單的設(shè)計是通過在開始一個事務(wù)的時候鎖定整個數(shù)據(jù)文件而完成的。SQLite非常適合嵌入式系統(tǒng)應(yīng)用。所以我們的openwrt用此數(shù)據(jù)庫

【實操---交叉編譯sqlite】

獲取sqlite源碼(如果是已經(jīng)編譯過的舊工程可跳過此步驟)

解壓
tar vzxf sqlite-autoconf-3410000.tar.gz
cd sqlite-autoconf-3410000/
查看編譯說明
cat README.txt
查閱Makefile
cat Makefile
創(chuàng)建編譯目標(biāo)目錄
mkdir mips_build
編譯前配置
./configure CC=mipsel-openwrt-linux-gcc --host=mipsel-openwrt-linux --prefix=/home/fan/work/sqlite-autoconf-3410000/mips_build/
編譯sqlite3
make
make install

編譯結(jié)果
ls mips_build/
binincludelibshare
bin ---- 存放可以執(zhí)行文件 sqilte3 可傳到開發(fā)板執(zhí)行
inlcude ---- 供外部調(diào)到的頭文件,聲明了相關(guān)sqlite庫接口
lib ---- sqlite動態(tài)連接庫
share -- sqtlie相關(guān)共享庫
把庫加入到用戶源碼工程,工程中就用使用sqlite接口了
cp -rf ./* ~/openwrt_21.02.0_mt76x8_jotale_source/package/omj_gateway/extra-libs/mips/sqlite3/如果是cmake工程,在.cmake文件中添加sqlite3--include和lib目錄路徑
-- EXTRA_INC_PATH=../../extra-libs/mips/sqlite3/include
-- EXTRA_LIB_PATH=../../extra-libs/mips/sqlite3/lib

【實操--在開發(fā)板上運行】
確認(rèn)開發(fā)板與電腦開發(fā)機在同一局域網(wǎng)下
scp bin/sqlite3root@192.168.3.176:/root/
按提示輸入開發(fā)板密碼
root@192.168.3.176's password:
等待傳輸完成sqlite3 100% 7297KB 164.7KB/s 00:44


在開發(fā)執(zhí)行sqlite3
到root目錄,因為剛才傳入的是root目錄
cd /root
查看sqlite3屬性
ls -la
...
-rwxr-xr-x 1 root root 7472168 Jul4 13:47 sqlite3 //開發(fā)板用的root應(yīng)用,可以看到在開發(fā)板,已經(jīng)有了可執(zhí)行權(quán)
...
運行sqlite3
./sqlite3SQLite version 3.41.0 2023-02-21 1837Enter ".help" for usage hints.Connected to a transient in-memory database.Use ".open FILENAME" to reopen on a persistent database.
查看sqlite使用方法, 數(shù)據(jù)庫使用太多內(nèi)容,本文是講不完的,有用到sqlte朋友,自行補課吧。
sqlite> .help
.auth ON|OFF Show authorizer callbacks
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail on|off Stop after hitting an error.Default OFF
.binary on|off Turn binary output on or off.Default OFF
.cd DIRECTORY Change the working directory to DIRECTORY
.changes on|off Show number of rows changed by SQL
.check GLOB Fail if output since .testcase does not match
.clone NEWDB Clone data into NEWDB from the existing database
.connection [close] [#]Open or close an auxiliary database connection
.databases List names and files of attached databases
.dbconfig ?op? ?val? List or change sqlite3_db_config() options
.dbinfo ?DB? Show status information about the database
.dump ?OBJECTS? Render database content as SQL
.echo on|off Turn command echo on or off
.eqp on|off|full|... Enable or disable automatic EXPLAIN QUERY PLAN
.excel Display the output of next command in spreadsheet
.exit ?CODE? Exit this program with return-code CODE
.expert EXPERIMENTAL. Suggest indexes for queries
.explain ?on|off|auto? Change the EXPLAIN formatting mode.Default: auto
.filectrl CMD ... Run various sqlite3_file_control() operations
.fullschema ?--indent? Show schema and the content of sqlite_stat tables
.headers on|off Turn display of headers on or off
.help ?-all? ?PATTERN? Show help text for PATTERN
.import FILE TABLE Import data from FILE into TABLE
.imposter INDEX TABLE Create imposter table TABLE on index INDEX
.indexes ?TABLE? Show names of indexes
.limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT
.lint OPTIONS Report potential schema issues.
.load FILE ?ENTRY? Load an extension library
.log FILE|off Turn logging on or off.FILE can be stderr/stdout
.mode MODE ?OPTIONS? Set output mode
.nonce STRING Suspend safe mode for one command if nonce matches
.nullvalue STRING Use STRING in place of NULL values
.once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE
.open ?OPTIONS? ?FILE? Close existing database and reopen FILE
.output ?FILE? Send output to FILE or stdout if FILE is omitted
.parameter CMD ... Manage SQL parameter bindings
.print STRING... Print literal STRING
.progress N Invoke progress handler after every N opcodes
.prompt MAIN CONTINUE Replace the standard prompts
.quit Stop interpreting input stream, exit if primary.
.read FILE Read input from FILE or command output
.recover Recover as much data as possible from corrupt db.
.restore ?DB? FILE Restore content of DB (default "main") from FILE
.save ?OPTIONS? FILE Write database to FILE (an alias for .backup ...)
.scanstats on|off|est Turn sqlite3_stmt_scanstatus() metrics on or off
.schema ?PATTERN? Show the CREATE statements matching PATTERN
.selftest ?OPTIONS? Run tests defined in the SELFTEST table
.separator COL ?ROW? Change the column and row separators
.sha3sum ... Compute a SHA3 hash of database content
.shell CMD ARGS... Run CMD ARGS... in a system shell
.show Show the current values for various settings
.stats ?ARG? Show stats or turn stats on or off
.system CMD ARGS... Run CMD ARGS... in a system shell
.tables ?TABLE? List names of tables matching LIKE pattern TABLE
.testcase NAME Begin redirecting output to 'testcase-out.txt'
.testctrl CMD ... Run various sqlite3_test_control() operations
.timeout MS Try opening locked tables for MS milliseconds
.timer on|off Turn SQL timer on or off
.trace ?OPTIONS? Output each SQL statement as it is run
.version Show source, library and compiler versions
.vfsinfo ?AUX? Information about the top-level VFS
.vfslist List all available VFSes
.vfsname ?AUX? Print the name of the VFS stack
.width NUM1 NUM2 ... Set minimum column widths for columnar output
sqlite> .exit // 退出






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163833
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129472
  • SQlite
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    15945
  • openwrt系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    1555

原文標(biāo)題:【openwrt】移植sqlite 交叉編譯sqlite3

文章出處:【微信號:嵌入式加油站,微信公眾號:嵌入式加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    玩轉(zhuǎn)SQLite3SQLite圖形軟件基本操作

    上篇文章:,介紹了sqlite3命令行操作來創(chuàng)建數(shù)據(jù)庫與表,該方法需要有一定的數(shù)據(jù)庫基礎(chǔ)知識。
    的頭像 發(fā)表于 09-25 08:49 ?3196次閱讀
    玩轉(zhuǎn)<b class='flag-5'>SQLite3</b>:<b class='flag-5'>SQLite</b>圖形軟件基本操作

    【OK210試用體驗】sqlite3移植

    配置的是編譯后安裝位置,--host配置的是交叉編譯工具前綴cd sqlite3mkdir install./configure --prefix=./install --host
    發(fā)表于 09-21 16:02

    【創(chuàng)龍AM4379 Cortex-A9試用體驗】之移植Python2.7與sqlite3到TL-4379

    ,將sqlite3安裝到的目標(biāo)路徑。生成Makefile后,開始交叉編譯sqlite3,執(zhí)行命令:make編譯結(jié)束后,執(zhí)行安裝命令:make
    發(fā)表于 06-29 18:46

    arm 移植 sqlite3 數(shù)據(jù)庫

    libsqlite3.so.0.8.6 libsqlite3.so運行,sqlite3 ,出現(xiàn)SQLite version 3.8.5 2014-06-04 14:06:34等信息,
    發(fā)表于 02-21 22:46

    SQLite3在ARM Cortex-A9開發(fā)板上的移植

    ***ssf-linux-gnueabi/sysroot/usr/include/ ---->此路徑的頭文件是虛擬機CROSS_COMPILE的,為以后編譯對應(yīng)的視頻應(yīng)用程序做好準(zhǔn)備工作?! 】截悇討B(tài)庫  進入sqlite3
    發(fā)表于 03-12 10:57

    SQLite3在ARM Cortex-A9開發(fā)板上的移植

    ***ssf-linux-gnueabi/sysroot/usr/include/ ---->此路徑的頭文件是虛擬機CROSS_COMPILE的,為以后編譯對應(yīng)的視頻應(yīng)用程序做好準(zhǔn)備工作。  拷貝動態(tài)庫  進入sqlite3
    發(fā)表于 03-17 17:30

    Linux sqlite3的基本命令操作

    sqlite3一款主要用于嵌入式的輕量級數(shù)據(jù)庫,本文旨在為熟悉sqlite3基本命令提供技術(shù)文檔。
    發(fā)表于 07-16 06:29

    Sqlite3移植和使用-移植到ARM開發(fā)板上

    );select * from demo;C代碼如下,具體可參照目錄下的demo源碼交叉編譯:arm-linux-gnueabihf-gcc-I /home/ubuntu/sqlite3/install
    發(fā)表于 09-18 11:37

    深入理解SQLite3sqlite3_exec及回調(diào)函數(shù)sqlite3

    深入理解SQLite3sqlite3_exec及回調(diào)函數(shù)sqlite3:深入理解sqlite3_stmt 機制sqlite3:
    發(fā)表于 11-04 07:11

    怎樣將sqlite3數(shù)據(jù)庫交叉編譯移植到嵌入式開發(fā)板上去呢

    怎樣將sqlite3數(shù)據(jù)庫交叉編譯移植到嵌入式開發(fā)板上去呢?有哪些操作流程?
    發(fā)表于 12-27 07:31

    sqlite3移植所需的線程

    上一篇文章中提供了vfs支持,此處主要是sqlite3移植所需的線程,信號量支持,sqlite3源碼在官方下載,需要很大的內(nèi)存支持,移植基本原理就是實現(xiàn)
    發(fā)表于 02-11 06:13

    嵌入式數(shù)據(jù)庫Sqlite移植教程

    嵌入式數(shù)據(jù)庫Sqlite移植教程 sqlite-3.3.6編譯安裝與交叉編譯全過程詳細(xì)記錄
    發(fā)表于 03-11 09:57 ?3719次閱讀

    sqlite3在嵌入式Linux上的移植步驟詳解

    深入理解SQLite3sqlite3_exec及回調(diào)函數(shù)sqlite3:深入理解sqlite3_stmt 機制sqlite3:
    發(fā)表于 11-01 17:38 ?4次下載
    <b class='flag-5'>sqlite3</b>在嵌入式Linux上的<b class='flag-5'>移植</b>步驟詳解

    單片機裸機移植sqlite3

    上一篇文章中提供了vfs支持,此處主要是sqlite3移植所需的線程,信號量支持,sqlite3源碼在官方下載,需要很大的內(nèi)存支持,移植基本原理就是實現(xiàn)
    發(fā)表于 12-08 13:21 ?7次下載
    單片機裸機<b class='flag-5'>移植</b><b class='flag-5'>sqlite3</b>

    在ARM工控機上實現(xiàn)SQLite3的優(yōu)勢

    在ARM工控機上實現(xiàn)SQLite3的方法
    的頭像 發(fā)表于 03-03 19:24 ?710次閱讀
    在ARM工控機上實現(xiàn)<b class='flag-5'>SQLite3</b>的優(yōu)勢