本文主要是介绍windows安装mattn/go-oci8遇到的各种问题总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这两天需要查看一个beego项目,用到了mattn/go-oci8。但是本身不熟悉go以及环境问题,花了我2天时间各种查解决方案,google还好点(最终解决了问题),百度不摆了,这里记录一下。
1.由于用到了Oracle,我需要下载intantclient(版本最好也要跟数据库对应),注意x64或者x86要对应。
2.下载对应客户端的SDK,放到根目录。
3.将client路径放入PATH环境变量中
到这里,Oracle的部分就解决了,接下来是编译项目失败相关问题。
go get github.com\mattn\go-oci8
报错
1error adding symbols: File in wrong format
2 C:/MinGW/mingw64/bin/../bin/ld.exe: cannot find -loci
3mattn\go-oci8\oci8.go:4:10: fatal error: oci.h: No such file or directory
由于我不是很熟悉C编译那一套,我说说我尝试的各种方法。
1.C:\Go_WorkSpace\src\github.com\mattn\go-oci8
目录下有一个oci8.pc,请根据版本配置无误(ps:好像11.2跟12.1的版本,libdir路径不一样,请大家查一下),并且创建新的环境变量PKG_CONFIG_PATH
,根据自己的环境,加入上面oci8的路径;pkg-config --cflags --libs oci8
看下cflag、libs是否与配置的相同。
2.我的win是64位,之前用的gcc是TDM-GCC-64,始终报第一条错误,我决定换成MinGW64,网上下载安装包或者编译好的包都行(为什么会换呢?https://stackoverflow.com/questions/35004744/golang-oci8-error-adding-symbols-file-in-wrong-format)。
在环境变量中删除之前的TDM-GCC-64\bin,添加新的MINGW64\bin.
执行where gcc
,如果只有一个,mingw64\bin\gcc.exe,说明对了
最后,好像还有几个错来着,但是搞忘了。如果大家仍没有解决,可以@
我,看看有没有我碰到过而且解决的,以上。
这篇关于windows安装mattn/go-oci8遇到的各种问题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!