• Linux之Qt利用Sqlite静态编译库(转)


    参考:http://www.linuxidc.com/Linux/2011-11/47465.htm

    sqlite3编译安装

    ------------------------arm版----------------------

    1.从官方网站下载sqlite-autoconf-3070602.tar.gz

    2.解压,进入当前目录

    3.开始配置,执行命令如下(前提配置好交叉编译环境):
    ./configure --prefix=/usr/local/sqlite_arm --host=arm-linux

    4.开始编译,执行命令如下:
    make

    5.开始安装,执行命令如下:
    make install

    6.安装完,进入/usr/local/sqlite_arm,里面有东西(bin lib include share)
    生成说明安装成功

    7.把整个安装文件sqlite_arm拷贝到开发板上

    8.进入sqlite_arm的bin目录,配置环境如下:
    export LD_LIBRARY_PATH=/mnt/sqlite3_arm/lib:$LD_LIBRARY_PATH

    9.执行命令:
    ./sqlite3
    如果成功会显示sqlite3版本,到此移植sqlite3成功.

    -------------------sqlite3静态库-----------------
    1.安装完arm版sqlite3,进入安装目录sqlite3_arm的lib目录底下,内容如下

    libsqlite3.a   libsqlite3.so    libsqlite3.so.0.8.6
    libsqlite3.la  libsqlite3.so.0  pkgconfig

    2.把libsqlite3.a拷贝到自己的应用程序目录下(比如我的Qtcreator应用程序test_sqlite_static)
    同时拷贝sqlite3_arm的include目录底下的sqlite3.h到test_sqlite_static

    3.在Qtcreator中的test_sqlite_static.pro配置单下加如下内容:

    LIBS +=-L/root/test_sqlite_static /
    lsqlite3

    4.同时项目中添加已存在的头文件sqlite3.h

    5.主程序main.cpp如下:

    #include <QtCore/QCoreApplication>
    #include "sqlite3.h"
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
        sqlite3 *db=NULL;
        char *zErrMsg=0;
        int rc;
    
        rc = sqlite3_open("test.db",&db);
        if(rc)
        {
            fprintf(stderr,"Can't open database:%s/n",sqlite3_errmsg(db));
            sqlite3_close(db);
            return 0;
        }
        else printf("You have already successfully!/n");
        sqlite3_close(db);
    
       // return a.exec();
        exit(1);
    }

    6.在Qtcreator中的Projects中的Build Settings项中的Qt version设置为Qt/e版本

    7.编译程序,然后把程序拷贝到开发板,同时需要库:
    libQtCore.so.4 libQtNetwork.so.4 libQtTest.so.4

    8.运行程序./test_sqlite_static,成功则在当前目录有test.db文件生成 

    注意:

    make时会出错:

    “arm-none-linux-gnueabi-gcc: 3.7.6.2": No such file or directory”
    Makefile 127行的“ 3.7.6.2”空格导致,去掉’3’之前的空格,编译通过。
  • 相关阅读:
    关于消息队列的使用
    关于Redis中交互的过程
    关于Redis的启动过程
    【分布式】Zookeeper与Paxos
    【分布式】Chubby与Paxos
    【分布式】一致性协议
    【分布式】分布式架构
    【知识积累】try-catch-finally+return总结
    【面试】判断一棵二叉树是否为二叉排序树
    【面试】用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/kwseeker-bolgs/p/4747562.html
Copyright © 2020-2023  润新知