新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > sqlite的移植

        sqlite的移植

        作者: 時間:2016-11-21 來源:網絡 收藏
        要將或者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

        本文引用地址:http://www.104case.com/article/201611/319121.htm

        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上



        關鍵詞: sqlite移植ARM241

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 皋兰县| 金塔县| 巴彦淖尔市| 张掖市| 仲巴县| 鸡泽县| 额济纳旗| 枞阳县| 遂昌县| 崇义县| 海林市| 嘉荫县| 江西省| 漯河市| 鄢陵县| 通河县| 都兰县| 万宁市| 山东省| 阿拉善盟| 楚雄市| 鹤峰县| 武邑县| 罗定市| 海城市| 贵州省| 沾化县| 突泉县| 仁布县| 芷江| 敦化市| 衡山县| 象州县| 玛多县| 北辰区| 青冈县| 延庆县| 崇文区| 华阴市| 洛川县| 屯昌县|