oracle - 交叉编译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}
解决方案
推荐阅读
- qt - Qt 的 QTextEdit 有很大的内存泄漏问题
- vba - 在 VBA 中,为什么比较两个双精度比比较两个长
- c# - 具有多个数据库设置的 Web 应用程序 - ASP.NET MVC
- javascript - 如何将 php date_diff 值转换为 javascript 整数?
- apache-spark - spark:工作之间的长时间延迟,为什么 spark 会在驱动程序上保存表格?
- python - 超过每个分区允许的最大接收器数量 eventthub 中的错误
- excel - 对具有相同值的excel公式值(动态)进行排序
- c# - 我应该执行每个查询还是单个查询?
- python - 从我的数组中删除“数组”,然后可能将其转换为数据框
- c++ - 如何从子目录中制作 CMake 递归 OBJECT 库?