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