请教windows下,安装sqlite3的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教windows下,安装sqlite3的方法相关的知识,希望对你有一定的参考价值。

1.先从官网获取sqlite-amalgamation-3_6_22.zip;2.接着从官网获取sqlitedll-3_6_22.zip

下载编译好的DLL,这里有我们需要的sqlite3.def该文件
3.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3;
4.在接下来的对话框中选择"An empty DLL project",点 FINISH->OK;
5.将sqlite-amalgamation-3_6_22文件夹下的sqlite3.h以及sqlite3.c两个文件复制到工程文件夹下;
将sqlitedll-3_6_22文件夹下的sqlite3.def该文件复制到工程文件夹下;
6.在工程的Source Files中添加sqlite3.c文件;
7.在工程的Include Files中添加sqlite3.h文件;
8.在工程的Resource Files中添加sqlite3.def文件;
9.针对如下问题:
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_table_column_metadata
Debug/sqlite3.lib : fatal error LNK1120: 7 unresolved externals
在菜单【Project】-【Settings…】-【C/C++】标签下的Category【General】下
Preprocessor definitions下:
新增2个编译选项,分别是:
THREADSAFE
SQLITE_ENABLE_COLUMN_METADATA
10.往工程中添加sqlite3.def文件就是为生成sqlite3.lib文件;
sqlite3.lib是与sqlite3.dll动态链接库文件一起提供给软件开发者的;
参考技术A 1.下载 sqlite-dll-win32-x86-3140100
2.下载 sqlite-tools-win32-x86-3140100
安装:
先在C盘建一个文件夹 sqlite,
1.把 sqlite-dll-win32-x86-3140100 中解压出来的两个文件(sqlite3.def 和 sqlite3.dll)复制到刚才新建的目录(C:\sqlite)中
2.把 sqlite-tools-win32-x86-3140100 中解压出来的文件 sqlite3.exe 复制到C:\sqlite 目录中
3.添加系统环境变量, 在Path变量值后面添加 C:\sqlite(分号不要忘记了),如下图所示:

接下来测试一下是否安装完成
运行cmd,切换到C盘根目录,输入sqlite3,然后回车,如果安装成功的话,会显示sqlite版本号,如下图所示:

OK,Sqlite3已经安装完成了。

Go & SQLite on Windows

一般golang使用的sqlite驱动包都是github.com/mattn/go-sqlite3,但是官方并没有直接支持windows平台的编译,因为windows平台编译默认需要gcc支持

其实解决办法很简单,只需要在windows平台下安装gcc即可正常使用。

编译错误如下:

go get github.com/mattn/go-sqlite3
# github.com/mattn/go-sqlite3
exec: "gcc": executable file not found in %PATH%

 

下面说明如何解决:

1. 下载GCC  http://tdm-gcc.tdragon.net/download

2. 安装GCC

 

 

3. 打开MinGW Command Prompt 安装sqlite3

go get github.com/mattn/go-sqlite3

 

4. 安装好就可以测试程序了

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    //1. Open connection

    db, err := sql.Open("sqlite3", ":memory:")
    checkErr(err)
    defer db.Close()

    //2. fail-fast if can\'t connect to DB

    checkErr(db.Ping())

    //3. create table

    _, err = db.Exec("create table USER (ID integer PRIMARY KEY, NAME string not null); delete from USER;")
    checkErr(err)

    //4. insert data

    //4.1 Begin transaction
    tx, err := db.Begin()
    checkErr(err)

    //4.2 Prepare insert stmt.
    stmt, err := tx.Prepare("insert into USER(ID, NAME) values(?, ?)")
    checkErr(err)
    defer stmt.Close()

    for i := 0; i < 10; i++ {
        _, err = stmt.Exec(i, fmt.Sprint("user-", i))
        checkErr(err)
    }

    //4.3 Commit transaction
    tx.Commit()

    //5. Query data

    rows, err := db.Query("select * from USER")
    checkErr(err)
    defer rows.Close()

    //5.1 Iterate through result set
    for rows.Next() {
        var name string
        var id int
        err := rows.Scan(&id, &name)
        checkErr(err)
        fmt.Printf("id=%d, name=%s\\n", id, name)
    }

    //5.2 check error, if any, that were encountered during iteration
    err = rows.Err()
    checkErr(err)
}

func checkErr(err error, args ...string) {
    if err != nil {
        fmt.Println("Error")
        fmt.Println("%q: %s", err, args)
    }
}

 

以上是关于请教windows下,安装sqlite3的方法的主要内容,如果未能解决你的问题,请参考以下文章

Windows平台安装SQLite3数据库

Go 安装 sqlite3 驱动报错 fatal: The remote end hung up unexpectedly

请教intellij idea 14安装jrebel破解方法

Sqlite3-安装使用

DELL R720安装win2003 蓝屏 请教解决办法

Windows7如何安装Sqlite3