go - 使用 SQL 驱动程序交叉编译 Go 程序

标签 go

我有一个非常简单的 Go 测试程序,它使用 Oracle SQL 驱动程序(“github.com/mattn/go-oci8”)。我在 OS X 上构建并测试它并且它可以工作。 现在想在linux上交叉编译运行。 我是这样编译的:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go install github.com/mattn/go-oci8
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build myoracle.go

但是当我尝试运行它时,我得到了

$ ./myoracle
sql: unknown driver "oci8" (forgotten import?)

代码如下所示:

import (
    "database/sql"
    "fmt"
    _ "github.com/mattn/go-oci8"
    "os"
)

func main() {
    os.Setenv("NLS_LANG", "")

    db, err := sql.Open("oci8", "user/pass@dbserver:1521/SVC")
    if err != nil {
        fmt.Println(err)
        return
    }
}

最佳答案

大多数(/全部?)SQL 驱动程序只是实际 C 库的包装器。

您唯一的选择是使用带有您要为其编译的操作系统的虚拟机。

关于go - 使用 SQL 驱动程序交叉编译 Go 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064752/

相关文章:

go - 为什么在go routine中关闭channel会导致receiving channel收到值?

go - Golang追加更改追加参数

io - 过滤掉断管错误

go - 永久 channel 终止程序并与 RabbitMQ 消费者一起进入 channel

Golang appmon 类似于 Erlang 的 appmon

go - 如何从带空格的字符串创建 os.exec 命令结构

go - 关于 golang 中的 `&MyType{}` 模式的任何文档/文章?

go - 升级 Go 1.4 后如何重建所有库

go - 从 exec.Command 调用 "sed"

windows - Gopath环境错误