Go + Oracle + Xorm + go-oci8

一、系统环境

  • win10
  • oracle
  • OCI -> instantclient-basic-windows.x64-12.2.0.1.0
  • OCI SDK -> instantclient-sdk-windows.64-12.1.0.2.0
  • MinGW 64bit
  • go1.11.10 windows/amd64

二、安装MinGW

  1. 下载地址

    https://sourceforge.net/projects/mingw-w64/files/

  2. 安装MinG

    修改Architecture为:x86_64,点击 Next > 直到安装完成。注意:安装路径,后面需要用到

  3. 设置环境变量

    设置环境变量Path,添加:C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

  4. 下载 pkg-config.exe,并复制到 C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin 目录下

    下载地址:https://raw.githubusercontent.com/wendal/go-oci8/master/windows/pkg-config.exe
    开源地址:https://github.com/wendal/go-oci8

三、下载Oracle的OCI和SDK

  1. 下载对应的版本

    下载地址:https://www.oracle.com/technetwork/topics/winx64soft-089540.html

  2. 创建存放目录:C:\instantclient_12_2,并将oci的两个压缩文件解压到目录中
    1662265895373.jpg

  3. 设置环境变量Path,添加:C:\instantclient_12_2

四、修改oci8.pc

  1. 在 C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib 下创建pkg-config目录

  2. 复制 C:\Go\www\src\github.com\mattn\go-oci8 下的oci8.pc文件 至 pkg-config目录下

  3. 修改oci8.pc 中的oci路径

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    prefix=C:/instantclient_12_2
    exec_prefix=${prefix}
    libdir=${prefix}/sdk/lib/msvc
    includedir=${prefix}/sdk/include

    Name: oci8
    Description: oci8 library
    Libs: -L${libdir} -loci
    Cflags: -I${includedir}
    Version: 12.2
  4. 新建 PKG_CONFIG_PATH 环境变量,设置为:C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib\pkg-config

五、检查

  1. 检查mingw-w64是否装好:

    检查方式 cmd中输入gcc 输出结果是 gcc: fatal error: no input files compilation terminated. 表明mingw-w64安装好。

  2. 检查oci8.pc能否找到:

    在cmd下执行 pkg-config –cflags –libs oci8 出现 -IC:/instantclient_12_2/sdk/include -LC:/instantclient_12_2/sdk/lib/msvc -loci 类似字样 表明是找到了 oci8.pc 文件
    如果找不到 输出为空:(1)看看环境变量PKG_CONFIG_PATH 位置是不是包含oci8.pc (2)最好加入一个环境变量PKG_CONFIG 值C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\pkg-config.exe

  3. go build 编译之后报错:msvcr120.dll文件丢失

    安装VC++2013
    下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784