windows安装mattn/go-oci8遇到的各种问题总结

2023-11-03 17:31

本文主要是介绍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遇到的各种问题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/339789

相关文章

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决