单片机
返回首页

sqlite的移植

2016-04-20 来源:eefocus

要将或者SQLite-3.3.12移植到ARM2410开发板上,除了要有底层操作系统的支持外,还必须要有相应的交叉编译工具链。由于ARM2410开发板采用的是ARM-Linux作为底层操作系统,因此需要首先安装ARM-Linux工具链。
         1.交叉编译环境建立:
           拷贝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、设置交叉编译环境
              export PATH=/usr/local/arm/2.95.3/arm-linux/bin:$PATH
       
             设置config_TARGET_CC和config_BUILD_CC两个环境变量。config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器:
             export config_BUILD_CC=gcc
             export config_TARGET_CC=arm-linux-gcc
          
             把sqlite-3.3.12解压到/home/sqlite-3.3.12,并创建文件夹
              cd /home/sqlite-3.3.12             

              mkdir sqlite-arm-linux

         3、修改/home/sqlite-3.3.12目录下的 configure 文件的部分内容
          这样可以让configure不去检查你的交叉编译环境,否则会出现如下同样的错误
         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时用到.

         4、将Makefile文件中如下语句
            BCC = arm-linux-gcc -g -O2
            改成:
             BCC = gcc -g -O2

        5、编译并安装
            make 

            make install
           这里如果不出意外,将不会出现错误,那么库文件已经生成在
           /home/sqlite-3.3.12/sqlite-arm-linux/lib目录下,
          库文件已经生成在为了减小执行文件大小可以用strip处理,去掉其中的调试信息。
           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
       由此可知,此时生成的sqlite文件是还未strip过的。执行命令arm-linux-strip, 去掉其中的调试信息,这样文件将减少很多。
           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
这就是在开发板上可以直接运行的可执行文件。

        6、移植
      需要注意:
      拷贝是需要加上 –arf选项,因为libsqlite3.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下的库文件 移植到ARM上

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章