资讯专栏INFORMATION COLUMN

go-oci8编译安装过程(有别于官方说明)

Winer / 2330人阅读

go-oci8下载地址以及说明地址:https://github.com/wendal/go-oci

go-oci8官方说明

安装最新版的git,并设置可以从命令行直接调用git命令

这个步骤多一些

2.1 下载OCI最新版,存放于C:instantclient_11_2
2.2 下载OCI SDK最新版,存放于C:instantclient_11_2sdk
2.3 下载MinGW最新版,安装在C:mingw
2.4 下载pkg-config.exe和oci8.pc (已经存放在windows文件夹下)
2.5 将pkg-config.exe复制到C:mingwin下
2.6 将oci8.pc复制到C:mingwlibpkg-config下

修改系统环境变量,添加

    PATH=原有PATH;C:instantclient_11_2;C:mingwin;
    PKG_CONFIG_PATH=C:mingwlibpkg-config

执行 go get github.com/wendal/go-oci8

其中第二步下载,可以在 这里 下载到,其中的环境已经配置好了
如果这一步没在go-oci8官方下载,而是和我当时一样,一步步去各个软件官网下载,那么要注意了


下载并安装完之后,需要修改oci8.pc;

    # Package Information for pkg-config
     
    prefix=C:/instantclient_11_2
    exec_prefix=C:/instantclient_11_2
    libdir=${exec_prefix}
    includedir=${prefix}/sdk/include/
     
    Name: OCI
    Description: Oracle database engine
    Version: 11.2
    Libs: -L${libdir} -loci
    Libs.private: 
    Cflags: -I${includedir}
需要把prefix、exec_prefix指向你的安装目录

这个包是不支持win x64的,我也没测试64位版本的安装

这时候,go get github.com/wendal/go-oci

如果和我一样出现了

   C:Documents and SettingsAdministrator>go get github.com/wendal/go-oci8
   # github.com/wendal/go-oci8
   C:GoPathsrcgithub.comwendalgo-oci8oci8.go:119: cannot use (**C.struct_OCIS erver)(unsafe.Pointer(&conn.svc)) (type **C.struct_OCIServer) as type **C.struct
   _OCISvcCtx in argument to _Cfunc_OCILogon
   C:GoPathsrcgithub.comwendalgo-oci8oci8.go:136: cannot use (*C.struct_OCIServer)(c.svc) (type *C.struct_OCIServer) as type *C.struct_OCISvcCtx in argument to _Cfunc_OCILogoff
   C:GoPathsrcgithub.comwendalgo-oci8oci8.go:263: cannot use (*C.struct_OCIServer)(s.c.svc) (type *C.struct_OCIServer) as type *C.struct_OCISvcCtx in argument to _Cfunc_OCIStmtExecute
   C:GoPathsrcgithub.comwendalgo-oci8oci8.go:383: cannot use (*C.struct_OCIServer)(s.c.svc) (type *C.struct_OCIServer) as type *C.struct_OCISvcCtx in argument to _Cfunc_OCIStmtExecute

这样的出错提示,表示你安装的oci版本和go-oci8不一致,这个时候找到%GOPATH%srcgithub.comwendalgo-oci8oci8.go文件

有4个地方需要修改

119行

(**C.OCIServer)(unsafe.Pointer(&conn.svc)),
改为
(**C.OCISvcCtx)(unsafe.Pointer(&conn.svc)),

136行

(*C.OCIServer)(c.svc),
改为
(*C.OCISvcCtx)(c.svc),

263行

(*C.OCIServer)(c.svc),
改为
(*C.OCISvcCtx)(c.svc),

383行

(*C.OCIServer)(c.svc),
改为
(*C.OCISvcCtx)(c.svc),

或者直接替换OCIServer为OCISvcCtx。 重新执行

go get github.com/wendal/go-oci

搞定收工。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35030.html

相关文章

  • go-oci8编译安装过程有别官方说明

    go-oci8下载地址以及说明地址:https://github.com/wendal/go-oci go-oci8官方说明 安装最新版的git,并设置可以从命令行直接调用git命令 这个步骤多一些 2.1 下载OCI最新版,存放于C:instantclient_11_2 2.2 下载OCI SDK最新版,存放于C:instantclient_11_2sdk 2.3 下载MinGW最新版,安...

    blair 评论0 收藏0
  • 全网首份Python打包工具Pyinstaller实战指南,如丝滑般体验

    摘要:最好是客户双击,完事儿。目前已经兼容,以及和。一共会有个对象,分别是。,就是我们的工作目录,存放我们的数据。编译打包最后,我们执行就好了。打包的可执行文件会在里,中是一些打包时候需要的文件。输出中最后有字样,就算成功了。 showImg(https://img-blog.csdnimg.cn/20190303211533768.png?x-oss-process=image/water...

    caikeal 评论0 收藏0
  • ❤️ Go 有别其他语言的九个特性 ❤️

    ? 博主简介:CSDN原力作者,华为云享专家,掘金优秀作者 ? 个人博客:haiyong.site ? 粉丝专属福利:简历模板、PPT模板、学习资料、面试题库。文末领取 直接跳到末尾领取资料 随着编程语言的发展,Go 还很年轻。它于 2009 年 11 月 10 日首次发布。其创建者Robert Griesemer Rob Pike 和 Ken Thompson在 Google 工作,在那里大规...

    _DangJin 评论0 收藏0
  • 操作指南 物理云主机 UPHost

    摘要:部分物理云主机暂不支持功能,若出现主机网络不通宕机等情况,请紧急联系,所有主机支持功能将于年月下旬上线。监控监控监控物理云主机支持监控功能,监控指标与云主机一致。 操作指南本篇目录创建物理云主机物理云主机管理紧急登录监控GPU物理云主机安装温度监控创建物理云主机在UCloud控制台选择物理云主机产品,点选【创建主机】即可进入创建页面。在创建页面中,选择地域、可用区、机型、镜像等内容,并设置网...

    ernest.wang 评论0 收藏1777
  • 【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点

    摘要:情人节,项目开放了核心源码仓库,并更新了下的诸多核心成果,这意味着,已然度过了最困难的难点攻关期,进入到了全民公测阶段。年月日,开源了核心源码库,开启全民公测阶段。 2019.2.14 情人节,Filecoin项目开放了核心源码仓库go-filecoin,并更新了 filecoin-project organization下的诸多核心成果,这意味着,Filecoin已然度过了最困难的难...

    张春雷 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<