sql: unknown driver "sqlite3" (forgotten import?) 求大神帮忙!

我是在windows下交叉编译的,在Ubuntu上面运行就出错。golang 连接sqlite3 需要装什么库啊,Ubuntu上面没有golang环境 编译好直接运行的。

共 7 个回复


dophin

代码贴出来看看啊

# 0

cloa

`

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {

    db, err := sql.Open("sqlite3", "./test.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    var count int
    if err := db.QueryRow("select count(*) count from test where id=1").Scan(&count); err != nil {
        fmt.Println("Failed to QueryRow:", err)
    }
    fmt.Println(count)
}
`
# 1

dophin

Windows可以跑吗?

# 2

snake117

这个windows下编译为windows肯定没问题,我试过了。unbuntu下编译为ubuntu按楼主说的也没问题。那就是交叉编译的问题了。

# 3

lmxliumingxiao

这个问题楼主解决了吗,我也遇到了这个问题和楼主的一样,麻烦知道的贴个解决方案出来,感激不尽

# 4

Zhangyc310

cgo无法交叉编译,而sqlite3用到了c代码,这部分无法跨平台编译。
换用mysql,各个平台肚子编译。

# 5

qingo

这个就sqlite3就没办法了吧?

# 6