go-goracle / goracle

Go database/sql driver for connecting to Oracle Database, using the ODPI-C library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build errors for Windows 64-bit

tredoe opened this issue · comments

Describe the bug
Can not compile a basic program:

package main

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

	_ "gopkg.in/goracle.v2"
)

const (
	dbname = "XEPDB1"
	user   = "SYS"
	pass   = "***"
)

func main() {
	db, err := connectDB()
	if err != nil {
		log.Fatal("Connect Error:\n" + err.Error())
	}
	if err = db.Ping(); err != nil {
		log.Fatal("Ping Error:\n" + err.Error())
	}
	defer db.Close()
	fmt.Println("Connected: ok")
}

func connectDB() (*sql.DB, error) {
	driver := "goracle"
	connString := fmt.Sprintf("oracle://%s:%s@%s", user, pass, dbname)
	return sql.Open(driver, connString)
}

To Reproduce
Steps to reproduce the behavior:

  1. go build test_oracle.go
  2. See error:
# gopkg.in/goracle.v2
In file included from ..\..\..\go\pkg\mod\gopkg.in\goracle.v2@v2.22.4\odpi\embed/dpi.c:37:0,
                 from ..\..\..\go\pkg\mod\gopkg.in\goracle.v2@v2.22.4\drv.go:57:
..\..\..\go\pkg\mod\gopkg.in\goracle.v2@v2.22.4\odpi\embed/../src/dpiOci.c: In function 'dpiOci__getLoadErrorOnWindows':
..\..\..\go\pkg\mod\gopkg.in\goracle.v2@v2.22.4\odpi\embed/../src/dpiOci.c:1693:38: error: 'ERROR_MUI_FILE_NOT_FOUND' undeclared (first use in this function)
     if (!status && GetLastError() == ERROR_MUI_FILE_NOT_FOUND)
                                      ^
..\..\..\go\pkg\mod\gopkg.in\goracle.v2@v2.22.4\odpi\embed/../src/dpiOci.c:1693:38: note: each undeclared identifier is reported only once for each function it appears in

Your oracle client version
Oracle Database 18c Express Edition Release 18.0.0.0.0

Your goracle version
v2.22.4

Your go version
go version go1.13.4 windows/amd64

Your gcc version
gcc --version
gcc (GCC) 4.8.3

Machine (please complete the following information):

  • OS: Windows
  • Architecture amd64
  • Version: 10

See libuv/libuv#153 use newer MinGW .

Solved after of install the last version of MinGW-w64