2

Usually, it is easy to cross-compile go program on Mac for Windows; however, when the program connect to database (for example, Oracle, using mattn/go-oci8), cross compile will fail like:

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

I've googled a lot, basically I need to set

(1) compiler for the target platform, and (2) install oracle instant client sdk for target platform.

But it is really not easy to figure out how to do. What is the best practice to cross compile go program? Can two versions oracle sdk (win/mac) be installed on Mac at the same time?

ps. My oci8.pc is like this:

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}
Nick
  • 8,451
  • 13
  • 57
  • 106

0 Answers0