我有一个非常简单的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
}
}
答案 0 :(得分:1)
大多数(/ all?)SQL驱动程序只是实际C库的包装器。
您唯一的选择是使用具有您要编译的操作系统的虚拟机。
答案 1 :(得分:0)
哦,等等,这是因为github.com/mattn/go-oci8实际上需要CGo并且无法进行交叉编译吗?