在vscode中使用golang执行sqlite3连接器,遇到以下错误:收集2:错误:ld返回1退出状态

k7fdbhmy  于 2023-01-06  发布在  Go
关注(0)|答案(1)|浏览(320)
package main

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

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

type Users struct {
    UserId, intUname string
}

func main() {
    os.Remove("foo.db")

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

    sql := `create table users (userId integer, uname text);`
    db.Exec(sql)
    sql = `insert into users(userId,uname) values(1,'Mike');`
    db.Exec(sql)
    sql = `insert into users(userId,uname) values(2,'John');`
    db.Exec(sql)
    rows, err := db.Query("select * from users")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
    var users []Users = make([]Users, 0)
    for rows.Next() {
        var u Users
        rows.Scan(&u.UserId, &u.intUname)
        users = append(users, u)
    }
    fmt.Println(users)
}

以上是我的代码。现在我将运行这个文件。代码只连接到sqlite3数据库,并执行一些sql,没有任何其他操作。我不知道为什么会发生这种情况。

    • 符合以下错误:**

开始运行。

github.com/goproject/sqlite3

/nfs/站点/磁盘/模拟云_zhoudo1x_002/go/go/软件包/工具/linux_amd64/链接:运行gcc失败:退出状态1/nfs/站点/itools/em64t_SLES12SP5/pkgs/gcc/4.7.2/. bin/../lib64/gcc/x86_64-用户-Linux/4.7.2/../../../../x86_64-用户-Linux/bin/ld:/tmp/转到链接-322571714/000015.o(.文本+0x63):无法解析的AWAVAUATUSH * H * T $(针对符号"stderr@@GLIBC_2.2.5"的"重定位"/nfs/site/itools/em64t_SLES12SP5/pkgs/gcc/4.7.2/. bin/../lib64/gcc/x86_64-用户-Linux/4.7.2/../../../../x86_64-用户-Linux/bin/ld:最终链接失败:输出collect2上的不可表示部分:错误:ld返回1退出状态

    • 我不知道如何解决此错误。请帮助我。**
    • 预期结果:**

执行成功。
正常连接sqlite3。

4bbkushb

4bbkushb1#

这个错误表明Go语言工具链无法为github.com/mattn/go-sqlite3构建CGO实现(例如交叉编译错误)。
如果你无法解决C编译器的问题,你可以尝试导入modernc.org/sqlite并使用"sqlite" SQL驱动程序,这是一个纯粹的Sqlite的Go语言转换,避免了C编译器的需要。

相关问题