首先交代一下运行环境和工具版本:
WIN10
MINGW64
ORACLEINSTANCCLIENT_18_3 x64
Jetbrins Goland
编译阶段:
1. exec: "gcc": executable file not found in %PATH%
2. exec: "pkg-config": executable file not found in %PATH%
3. cannot use (**_Ctype_struct_OCIServer)(unsafe.Pointer(&conn.svc))
(type **_Ctype_struct_OCIServer) as type **_Ctype_struct_OCISvcCtx
in argument to func literal
运行阶段:
1. Process finished with exit code -1073741701 (0xC000007B)
2. exit status 3221225595
开始
一、下载ORACLEINSTANCCLIENT 和对应的SDK
下载地址:https://www.oracle.com/technetwork/topics/winx64soft-089540.html
我选用了18.3 x64的版本,能向下兼容,不用担心
注意basic版本和sdk都需要下载下来,一共是两个文件
下载之后先解压basic压缩包,然后将sdk解压到basic目录下:
添加如下环境变量到系统PATH变量:(按自己的情况添加)
二、下载安装MINGW64
主要是解决WIN中没有GCC的问题
如果不安装后期会出现问题:(exec: "gcc":executable file not foundin %PATH%)
因为之前下载的ORACLEINSTANCCLIENT是64位的所以我们也需要下载MINGW64才能编译
下载地址:https://sourceforge.net/projects/mingw-w64/files/
注意,第一个是在线安装程序,较慢,建议直接下载7z压缩包。解压即可
解压之后,添加如下环境变量到PATH:(按自己的情况添加)
三、获取GO-OCI8驱动
执行命令:go get github.com/wendal/go-oci8
会报一个错误:pkg-config: exec: "pkg-config": executable file not found in %PATH%
先忽略,后面会解决
四、修改OCI8.PC
进入GOPATH目录,找到OCI8.PC文件,打开,修改 红色框的部分(按你自己的情况)
%GoPath%\src\github.com\wendal\go-oci8\windows
然后:
1.复制此目录下pkg-config.exe到mingw64下的bin目录
2.复制此目录下oci8.pc到mingw64下的lib/pkg-config目录(pkg-config目录需要自己建)
添加如下(PKG_CONFIG_PATH)环境变量:(按自己情况)
五、最后一步
执行命令:go get github.com/wendal/go-oci8
此时执行这个操作
应该已经没有(pkg-config: exec: "pkg-config": executable file not found in %PATH%)这个错误了,如果还有,就是上一步你做的不太对。
但是,还会有新的错误出现,如下:
不要慌
打开GOPATH目录下,oci8.go文件
路径:%GoPath%\src\github.com\wendal\go-oci8
此文件中四处OCIServer为OCISvcCtx
再次!!!!
执行命令:go get github.com/wendal/go-oci8
可以了,完事儿。
让我们上一段代码,测试一下:
package main import ( "database/sql" "fmt" "log" "os" _ "github.com/wendal/go-oci8" ) func query() { os.Setenv("NLS_LANG", "AMERICAN_AMERICA.AL32UTF8") log.SetFlags(log.Lshortfile | log.LstdFlags) db, err := sql.Open("oci8", "j1_bibox/oracle123@10.1.196.200:1521/zjdevdb") if err != nil { log.Fatal(err) } defer db.Close() rows, err := db.Query("select * from v$version") if err != nil { log.Fatal(err) } cols, _ := rows.Columns() rawResult := make([][]byte, len(cols)) result := make([]string, len(cols)) dest := make([]interface{}, len(cols)) for i := range rawResult { dest[i] = &rawResult[i] } for rows.Next() { err = rows.Scan(dest...) for i, raw := range rawResult { if raw == nil { result[i] = "" } else { result[i] = string(raw) } } fmt.Printf("%s\n", result[0]) } rows.Close() } func main() { query() }
走你
就是这么刺激,还是错!!!!?????
现在不要慌,冷静一点,分析情况
首先,如果你的代码在IDE中运行,会报错如下:
如果你不信这个邪,在cmd中运行,会报错如下:
以管理员模式运行
IDE中也可以这样解决问题:
转载:https://www.cnblogs.com/jiangyuqin/p/10135963.html
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】