SQLite向arm-linux的移植一
時間:2016-12-14作者:華清遠見
SQLite是一個開源的嵌入式關系數據庫。 一、 SQLite環境的建立: 1. 首先從下載新版本的sqlite源碼包,我下載的是sqlite-amalgamation-3.7.3.tar.gz,并將下載的文件解壓。 2. 在解壓生成的 sqlite-3.7.3 目錄下執行 ./configure --host=arm-cortex_a8-linux-gnueabi --prefix=/home/linux/sqlite-arm,其中host為設置交叉編譯器,prefix為設置存放編譯生成文件的目錄,sqlite-arm為跟sqlite-3.7.3同級的目錄。 arm-cortex_a8-linux-gnueabi: 編譯器的版本要和內核版本一致,所以要根據自己的情況來決定。 3. 執行上步操作之后會生成Makefile, 打開Makefile文件,找到-DPACKAGE_STRING=\"sqlite\ 3.7.3\"處,把3.7.3前面的“\”和空格刪除。(我使用的這個版本有個錯誤,其他的版本不一定有) 4. 然后直接執行make (要是這樣make有錯的話,可以在make之前先make clean一下,然后在make),生成可執行文件. 5. 然后再執行make install,配置環境變量。 sqlite-arm目錄下會生成bin、include、share和lib四個目錄。 二、 SQLite數據庫的移植: 1. 去掉/home/linux/project/sqlite-arm目錄下的sqlite3的調示信息(瘦身):$ arm-none-linux-gnueabi-strip sqlite3。 (為了在PC環境下調試,好備份一下sqlite3,一下瘦身的文件同理) 2. 將sqlite3下載到開發板的/usr/bin目錄: cp sqlite3 /source/rootfs/usr/bin 3、在/home/linux/project/sqlite-arm/lib 中找到libsqlite3.so.0.8.6這個庫文件,去掉調示信息后將libsqlite3.so.0.8.6拷貝到開發板目錄/usr/lib下,在開發板目錄/usr/lib下創建一個符號鏈接:ln -s libsqlite3.so.0.8.6 libsqlite3.so.0。這樣你交叉編譯的程序就可以使用sqlite3數據庫了。 指令如下: 在/home/linux/sqlite-arm/lib 下: $ arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6 cp libsqlite3.so.0.8.6 /source/rootfs/lib 在開發板目錄 /lib(/source/rootfs/lib)下: $ ln -s libsqlite3.so.0.8.6 libsqlite3.so.0 注:libsqlite3.so.0是鏈接到libsqlite3.so.0.8.6的. 三、SQLite的測試: 寫sqlte相關的程序,database_task.c。此處省略了該文件的內容。 四、在PC機上生成執行文件,有兩種方法: 第一種方法:把庫文件放到交叉編譯默認搜索的目錄 (/home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib) $ sudo ln -s /home/linux/sqlite-arm/lib/libsqlite3.so.0.8.6 /home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib/libsqlite3.so $ arm-cortex_a8-linux-gnueabi-gcc database_task.c -lsqlite3 第二種方法:直接在交叉編譯時,寫明需要的庫 $ arm-cortex_a8-linux-gnueabi-gcc database_task.c ../sqlite-arm/lib/libsqlite3.so.0.8.6 備注:以下命令可以查看執行文件,使用了哪些庫。 $ arm-cortex_a8-linux-gnueabi-ldd --root=/home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib a.out 若執行了以下命令,代碼文件夾下,就可以沒有sqlite3.h。數據庫文件需要拷貝到開發板目錄(/source/rootfs下)。 $ sudo cp /mnt/hgfs/sh/sqlite3.h /home/linux/toolchain/arm-cortex_a8-linux-gnueabi/include/
相關資訊
發表評論
|