通常,在Windows的Mac上交叉编译go程序很容易;但是,当程序连接到数据库(例如,使用mattn / go-oci8的Oracle)时,交叉编译将失败,如下所示:
➜ tmp GOOS=windows go build .
# github.com/mattn/go-oci8
../github.com/mattn/go-oci8/oci8_go18.go:13:10: undefined: OCI8Conn
我已经搜索了很多东西,基本上我需要设置
(1)用于目标平台的编译器,以及 (2)为目标平台安装oracle Instant Client SDK。
但是弄清楚该怎么做确实不容易。交叉编译go程序的最佳实践是什么?可以同时在Mac上安装两个版本的oracle sdk(win / mac)吗?
ps。我的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}