首页 > 解决方案 > 交叉编译go时如何使用Oracle Instant Client SDK?

问题描述

通常,在 Mac for Windows 上交叉编译 go 程序很容易;但是,当程序连接到数据库(例如,Oracle,使用 mattn/go-oci8)时,交叉编译将失败,如下所示:

➜  tmp GOOS=windows go build .
# github.com/mattn/go-oci8
../github.com/mattn/go-oci8/oci8_go18.go:13:10: undefined: OCI8Conn

我google了很多,基本上我需要设置

(1) 目标平台编译器,(2) 目标平台安装oracle Instant Client sdk。

但是要弄清楚该怎么做真的不容易。交叉编译 go 程序的最佳实践是什么?Mac可以同时安装两个版本的oracle sdk(win/mac)吗?

附言。我的 oci8.pc 是这样的:

prefixdir=/Users/nicklee/OracleDriver/instantclient_12_2/
libdir=${prefixdir}
includedir=${prefixdir}/sdk/include
includedir=${prefixdir}/sdk_windows64/include

Name: OCI
Description: Oracle database driver
Version: 12.2
Libs: -L${libdir} -lclntsh
Cflags: -I${includedir}

标签: oraclego

解决方案


推荐阅读