<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          sqlite的移植

          作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
          要將或者SQLite-3.3.12移植ARM2410開(kāi)發(fā)板上,除了要有底層操作系統(tǒng)的支持外,還必須要有相應(yīng)的交叉編譯工具鏈。由于ARM2410開(kāi)發(fā)板采用的是ARM-Linux作為底層操作系統(tǒng),因此需要首先安裝ARM-Linux工具鏈。
          1.交叉編譯環(huán)境建立:
          拷貝cross-2.95.3.tar.bz2(或者cross-3.3.2.tar.gz)到/usr/local目錄下并解壓縮。
          cp cross-2.95.3.tar.bz2 /usr/local/arm
          tar –jxvf cross-2.95.3.tar.bz2

          2、設(shè)置交叉編譯環(huán)境
          export PATH=/usr/local/arm/2.95.3/arm-linux/bin:$PATH

          設(shè)置config_TARGET_CC和config_BUILD_CC兩個(gè)環(huán)境變量。config_TARGET_CC是交叉編譯器,config_BUILD_CC是主機(jī)編譯器:
          export config_BUILD_CC=gcc
          export config_TARGET_CC=arm-linux-gcc

          sqlite-3.3.12解壓到/home/sqlite-3.3.12,并創(chuàng)建文件夾
          cd /home/sqlite-3.3.12

          本文引用地址:http://www.ex-cimer.com/article/201611/319121.htm

          mkdir sqlite-arm-linux

          3、修改/home/sqlite-3.3.12目錄下的 configure 文件的部分內(nèi)容
          這樣可以讓configure不去檢查你的交叉編譯環(huán)境,否則會(huì)出現(xiàn)如下同樣的錯(cuò)誤
          checking for /usr/include/readline.h... configure: error: cannot check for file existence when cross compiling,將不能生成Makefile文件.
          20420行 { (exit 1); exit 1; }; }改為 { (echo 1); echo 1; }; }
          20446行 { (exit 1); exit 1; }; }改為 { (echo 1); echo 1; }; }
          cd /home/sqlite-3.3.12/sqlite-arm-linux
          ../configure --disable-tcl --prefix=/home/sqlite-arm-linux/ --host=arm-linux
          生成了Makefile文件,這些將在make時(shí)用到.

          4、將Makefile文件中如下語(yǔ)句
          BCC = arm-linux-gcc -g -O2
          改成:
          BCC = gcc -g -O2

          5、編譯并安裝
          make

          make install
          這里如果不出意外,將不會(huì)出現(xiàn)錯(cuò)誤,那么庫(kù)文件已經(jīng)生成在
          /home/sqlite-3.3.12/sqlite-arm-linux/lib目錄下,
          庫(kù)文件已經(jīng)生成在為了減小執(zhí)行文件大小可以用strip處理,去掉其中的調(diào)試信息。
          arm-linux-strip libsqlit3.so.0.8.6

          file sqlite3
          sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
          由此可知,此時(shí)生成的sqlite文件是還未strip過(guò)的。執(zhí)行命令arm-linux-strip, 去掉其中的調(diào)試信息,這樣文件將減少很多。
          arm-linux-strip sqlite3

          再次用file命令查看sqlite3的信息:
          file sqlite3
          sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped
          這就是在開(kāi)發(fā)板上可以直接運(yùn)行的可執(zhí)行文件。

          6、移植
          需要注意:
          拷貝是需要加上 –arf選項(xiàng),因?yàn)閘ibsqlite3.so.0,libsqlite3.so是鏈接到libsqlite3.so.0.8.6 的。
          cd /home/sqlite-3.3.12/sqlite-arm-linux/lib
          cp –arf libsqlite3.so libsqlite3.so.0. libsqlite3.so.0.8.6 /usr/qt-sqlite/lib
          cd /home/sqlite-3.3.8/bin
          cp sqlite3 /usr/qt-sqlite

          然后把sqlite3和lib下的庫(kù)文件 移植到ARM上



          關(guān)鍵詞: sqlite移植ARM241

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();