windows安装mattngo-oci8遇到的各种问题总结

    xiaoxiao2022-07-02  102

    这两天需要查看一个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,说明对了

    最后,好像还有几个错来着,但是搞忘了。如果大家仍没有解决,可以@我,看看有没有我碰到过而且解决的,以上。

    最新回复(0)