go-sdl2
go-sdl2 copied to clipboard
Cannot cross-compile from Mac to Windows
I'm trying to cross-compile something but I'm getting an error.
Any ideas?
Go version:
go version go1.5.3 darwin/amd64
Command:
CGO_CPPFLAGS="-I/usr/local/opt/libiconv/include -I /usr/local/Cellar/sdl2/2.0.4/include/SDL2" CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -x -o sugoku.exe sugoku.go
Error message:
../../golang/src/github.com/veandco/go-sdl2/sdl/yuv_sw_c.go:17: undefined: Surface ../../golang/src/github.com/veandco/go-sdl2/sdl/yuv_sw_c.go:18: undefined: Surface
Full log:
WORK=/var/folders/l8/gl87lhfn54b62j4j31x62j0r0000gn/T/go-build785796153
mkdir -p $WORK/runtime/_obj/
mkdir -p $WORK/
cd /usr/local/opt/go/libexec/src/runtime
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/runtime.a -trimpath $WORK -p runtime -+ -buildid 2043665727abd2c6ffd7b17aaabe549a5f942f1d -D _/usr/local/opt/go/libexec/src/runtime -I $WORK -pack -asmhdr $WORK/runtime/_obj/go_asm.h ./alg.go ./arch1_amd64.go ./arch_amd64.go ./atomic_amd64x.go ./atomic_pointer.go ./cgo.go ./cgocall.go ./cgocallback.go ./chan.go ./compiler.go ./complex.go ./cpuprof.go ./cputicks.go ./debug.go ./defs_windows_amd64.go ./env_posix.go ./error.go ./extern.go ./hash64.go ./hashmap.go ./hashmap_fast.go ./heapdump.go ./iface.go ./lfstack.go ./lfstack_amd64.go ./lock_sema.go ./malloc.go ./mbarrier.go ./mbitmap.go ./mcache.go ./mcentral.go ./mem_windows.go ./mfinal.go ./mfixalloc.go ./mgc.go ./mgcmark.go ./mgcsweep.go ./mgcwork.go ./mheap.go ./mprof.go ./msize.go ./mstats.go ./netpoll.go ./netpoll_windows.go ./os1_windows.go ./os2_windows.go ./os_windows.go ./panic.go ./panic1.go ./parfor.go ./print1.go ./print1_write.go ./proc.go ./proc1.go ./race0.go ./rdebug.go ./rune.go ./runtime.go ./runtime1.go ./runtime2.go ./select.go ./sema.go ./signal_windows.go ./sigqueue.go ./slice.go ./softfloat64.go ./sqrt.go ./stack1.go ./stack2.go ./string.go ./string1.go ./stubs.go ./symtab.go ./sys_x86.go ./syscall_windows.go ./time.go ./trace.go ./traceback.go ./type.go ./typekind.go ./typekind1.go ./unaligned1.go ./vdso_none.go ./wbfat.go ./zcallback_windows.go ./zgoarch_amd64.go ./zgoos_windows.go ./zversion.go
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/asm.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/asm_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/duff_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./duff_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/memclr_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./memclr_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/memmove_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./memmove_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/rt0_windows_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./rt0_windows_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/sys_windows_amd64.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./sys_windows_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/_obj/zcallback_windows.o -trimpath $WORK -I $WORK/runtime/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./zcallback_windows.s
pack r $WORK/runtime.a $WORK/runtime/_obj/asm.o $WORK/runtime/_obj/asm_amd64.o $WORK/runtime/_obj/duff_amd64.o $WORK/runtime/_obj/memclr_amd64.o $WORK/runtime/_obj/memmove_amd64.o $WORK/runtime/_obj/rt0_windows_amd64.o $WORK/runtime/_obj/sys_windows_amd64.o $WORK/runtime/_obj/zcallback_windows.o # internal
mkdir -p $WORK/errors/_obj/
cd /usr/local/opt/go/libexec/src/errors
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/errors.a -trimpath $WORK -p errors -complete -buildid 044dd9a0177a0cfb8b3c3c164805854b9f9ad4ee -D _/usr/local/opt/go/libexec/src/errors -I $WORK -pack ./errors.go
mkdir -p $WORK/sync/atomic/_obj/
mkdir -p $WORK/sync/
cd /usr/local/opt/go/libexec/src/sync/atomic
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/sync/atomic.a -trimpath $WORK -p sync/atomic -buildid 7840bffb0e087e7e586a16bf5f866d65ce5f4f29 -D _/usr/local/opt/go/libexec/src/sync/atomic -I $WORK -pack -asmhdr $WORK/sync/atomic/_obj/go_asm.h ./doc.go ./value.go
mkdir -p $WORK/math/_obj/
cd /usr/local/opt/go/libexec/src/math
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/math.a -trimpath $WORK -p math -buildid 113059832f57732ea082db713117116c2f1cd5ed -D _/usr/local/opt/go/libexec/src/math -I $WORK -pack -asmhdr $WORK/math/_obj/go_asm.h ./abs.go ./acosh.go ./asin.go ./asinh.go ./atan.go ./atan2.go ./atanh.go ./bits.go ./cbrt.go ./const.go ./copysign.go ./dim.go ./erf.go ./exp.go ./expm1.go ./floor.go ./frexp.go ./gamma.go ./hypot.go ./j0.go ./j1.go ./jn.go ./ldexp.go ./lgamma.go ./log.go ./log10.go ./log1p.go ./logb.go ./mod.go ./modf.go ./nextafter.go ./pow.go ./pow10.go ./remainder.go ./signbit.go ./sin.go ./sincos.go ./sinh.go ./sqrt.go ./tan.go ./tanh.go ./unsafe.go
mkdir -p $WORK/unicode/utf16/_obj/
mkdir -p $WORK/unicode/
cd /usr/local/opt/go/libexec/src/unicode/utf16
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/unicode/utf16.a -trimpath $WORK -p unicode/utf16 -complete -buildid d98cee6ddb2f709f43cdc01ace961508e8715612 -D _/usr/local/opt/go/libexec/src/unicode/utf16 -I $WORK -pack ./utf16.go
mkdir -p $WORK/unicode/utf8/_obj/
cd /usr/local/opt/go/libexec/src/unicode/utf8
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/unicode/utf8.a -trimpath $WORK -p unicode/utf8 -complete -buildid a96a347fcc1556bd587f9a04de94b695e72a4916 -D _/usr/local/opt/go/libexec/src/unicode/utf8 -I $WORK -pack ./utf8.go
mkdir -p $WORK/runtime/cgo/_obj/
mkdir -p $WORK/runtime/
cd /usr/local/opt/go/libexec/src/runtime/cgo
CGO_LDFLAGS="-g" "-O2" "-lmsvcrt" "-lm" "-mthreads" /usr/local/opt/go/libexec/pkg/tool/darwin_amd64/cgo -objdir $WORK/runtime/cgo/_obj/ -importpath runtime/cgo -import_runtime_cgo=false -import_syscall=false -- -I/usr/local/opt/libiconv/include -I /usr/local/Cellar/sdl2/2.0.4/include/SDL2 -I $WORK/runtime/cgo/_obj/ -Wall -Werror cgo.go
cd /usr/local/opt/go/libexec/src/sync/atomic
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/sync/atomic/_obj/asm_amd64.o -trimpath $WORK -I $WORK/sync/atomic/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm_amd64.s
pack r $WORK/sync/atomic.a $WORK/sync/atomic/_obj/asm_amd64.o # internal
mkdir -p $WORK/sync/_obj/
cd /usr/local/opt/go/libexec/src/sync
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/sync.a -trimpath $WORK -p sync -buildid 071006170cf92a757a81d24d038dd965e22b4942 -D _/usr/local/opt/go/libexec/src/sync -I $WORK -pack ./cond.go ./mutex.go ./once.go ./pool.go ./race0.go ./runtime.go ./rwmutex.go ./waitgroup.go
cd /usr/local/opt/go/libexec/src/runtime/cgo
clang -I . -m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -print-libgcc-file-name
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/runtime/cgo.a -trimpath $WORK -p runtime/cgo -buildid 496c9b4d62580c1017ca0ff2b8172ba20b3d533e -D _/usr/local/opt/go/libexec/src/runtime/cgo -I $WORK -pack -asmhdr $WORK/runtime/cgo/_obj/go_asm.h ./callbacks.go ./iscgo.go
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/runtime/cgo/_obj/asm_amd64.o -trimpath $WORK -I $WORK/runtime/cgo/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm_amd64.s
pack r $WORK/runtime/cgo.a $WORK/runtime/cgo/_obj/asm_amd64.o # internal
mkdir -p $WORK/io/_obj/
cd /usr/local/opt/go/libexec/src/io
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/io.a -trimpath $WORK -p io -complete -buildid e401b7d87c7be97bcb5296597ba2803588a8ee84 -D _/usr/local/opt/go/libexec/src/io -I $WORK -pack ./io.go ./multi.go ./pipe.go
mkdir -p $WORK/syscall/_obj/
cd /usr/local/opt/go/libexec/src/syscall
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/syscall.a -trimpath $WORK -p syscall -buildid 4d17f3c0378a41048b40fa8c375077b0c81206a2 -D _/usr/local/opt/go/libexec/src/syscall -I $WORK -pack -asmhdr $WORK/syscall/_obj/go_asm.h ./dll_windows.go ./env_windows.go ./exec_windows.go ./race0.go ./security_windows.go ./str.go ./syscall.go ./syscall_windows.go ./syscall_windows_amd64.go ./zerrors_windows.go ./zerrors_windows_amd64.go ./zsyscall_windows.go ./zsysnum_windows_amd64.go ./ztypes_windows.go ./ztypes_windows_amd64.go
cd /usr/local/opt/go/libexec/src/math
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/abs_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./abs_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/asin_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asin_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/atan2_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./atan2_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/atan_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./atan_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/dim_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./dim_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/exp2_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./exp2_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/exp_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./exp_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/expm1_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./expm1_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/floor_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./floor_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/frexp_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./frexp_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/hypot_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./hypot_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/ldexp_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./ldexp_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/log10_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./log10_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/log1p_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./log1p_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/log_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./log_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/mod_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./mod_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/modf_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./modf_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/remainder_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./remainder_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/sin_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./sin_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/sincos_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./sincos_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/sqrt_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./sqrt_amd64.s
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/math/_obj/tan_amd64.o -trimpath $WORK -I $WORK/math/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./tan_amd64.s
pack r $WORK/math.a $WORK/math/_obj/abs_amd64.o $WORK/math/_obj/asin_amd64.o $WORK/math/_obj/atan2_amd64.o $WORK/math/_obj/atan_amd64.o $WORK/math/_obj/dim_amd64.o $WORK/math/_obj/exp2_amd64.o $WORK/math/_obj/exp_amd64.o $WORK/math/_obj/expm1_amd64.o $WORK/math/_obj/floor_amd64.o $WORK/math/_obj/frexp_amd64.o $WORK/math/_obj/hypot_amd64.o $WORK/math/_obj/ldexp_amd64.o $WORK/math/_obj/log10_amd64.o $WORK/math/_obj/log1p_amd64.o $WORK/math/_obj/log_amd64.o $WORK/math/_obj/mod_amd64.o $WORK/math/_obj/modf_amd64.o $WORK/math/_obj/remainder_amd64.o $WORK/math/_obj/sin_amd64.o $WORK/math/_obj/sincos_amd64.o $WORK/math/_obj/sqrt_amd64.o $WORK/math/_obj/tan_amd64.o # internal
mkdir -p $WORK/strconv/_obj/
cd /usr/local/opt/go/libexec/src/strconv
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/strconv.a -trimpath $WORK -p strconv -complete -buildid 06bc17b04dccd11a7210cc2e04f5e77b3a61997d -D _/usr/local/opt/go/libexec/src/strconv -I $WORK -pack ./atob.go ./atof.go ./atoi.go ./decimal.go ./doc.go ./extfloat.go ./ftoa.go ./isprint.go ./itoa.go ./quote.go
mkdir -p $WORK/math/rand/_obj/
mkdir -p $WORK/math/
cd /usr/local/opt/go/libexec/src/math/rand
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/math/rand.a -trimpath $WORK -p math/rand -complete -buildid f9c5c37fcbcc71b90acb0b5f0dc491422419cc0d -D _/usr/local/opt/go/libexec/src/math/rand -I $WORK -pack ./exp.go ./normal.go ./rand.go ./rng.go ./zipf.go
cd /usr/local/opt/go/libexec/src/syscall
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/syscall/_obj/asm.o -trimpath $WORK -I $WORK/syscall/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm.s
pack r $WORK/syscall.a $WORK/syscall/_obj/asm.o # internal
mkdir -p $WORK/internal/syscall/windows/_obj/
mkdir -p $WORK/internal/syscall/
cd /usr/local/opt/go/libexec/src/internal/syscall/windows
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/internal/syscall/windows.a -trimpath $WORK -p internal/syscall/windows -complete -buildid d380daebca30cb29b9b259ebdcc73ab9800a549d -D _/usr/local/opt/go/libexec/src/internal/syscall/windows -I $WORK -pack ./syscall_windows.go ./zsyscall_windows.go
mkdir -p $WORK/internal/syscall/windows/registry/_obj/
mkdir -p $WORK/internal/syscall/windows/
cd /usr/local/opt/go/libexec/src/internal/syscall/windows/registry
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/internal/syscall/windows/registry.a -trimpath $WORK -p internal/syscall/windows/registry -complete -buildid 9edc971b1e7c7a42158d74d11b35056ebc90555a -D _/usr/local/opt/go/libexec/src/internal/syscall/windows/registry -I $WORK -pack ./key.go ./syscall.go ./value.go ./zsyscall_windows.go
mkdir -p $WORK/time/_obj/
cd /usr/local/opt/go/libexec/src/time
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/time.a -trimpath $WORK -p time -buildid b211de3db43a2d048d600c27f7224e29f1278a2f -D _/usr/local/opt/go/libexec/src/time -I $WORK -pack ./format.go ./sleep.go ./sys_windows.go ./tick.go ./time.go ./zoneinfo.go ./zoneinfo_abbrs_windows.go ./zoneinfo_read.go ./zoneinfo_windows.go
mkdir -p $WORK/reflect/_obj/
cd /usr/local/opt/go/libexec/src/reflect
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/reflect.a -trimpath $WORK -p reflect -buildid b348473968762bf93214585c2690b357f80af41e -D _/usr/local/opt/go/libexec/src/reflect -I $WORK -pack -asmhdr $WORK/reflect/_obj/go_asm.h ./deepequal.go ./makefunc.go ./type.go ./value.go
mkdir -p $WORK/os/_obj/
cd /usr/local/opt/go/libexec/src/os
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/os.a -trimpath $WORK -p os -buildid b54167765d82921f9dc58ee1819b77fea104e448 -D _/usr/local/opt/go/libexec/src/os -I $WORK -pack ./dir_windows.go ./doc.go ./env.go ./error.go ./error_windows.go ./exec.go ./exec_posix.go ./exec_windows.go ./file.go ./file_posix.go ./file_windows.go ./getwd.go ./path.go ./path_windows.go ./proc.go ./stat_windows.go ./sticky_notbsd.go ./str.go ./sys_windows.go ./types.go ./types_windows.go
cd /usr/local/opt/go/libexec/src/reflect
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/asm -o $WORK/reflect/_obj/asm_amd64.o -trimpath $WORK -I $WORK/reflect/_obj/ -I /usr/local/opt/go/libexec/pkg/include -D GOOS_windows -D GOARCH_amd64 ./asm_amd64.s
pack r $WORK/reflect.a $WORK/reflect/_obj/asm_amd64.o # internal
mkdir -p $WORK/encoding/binary/_obj/
mkdir -p $WORK/encoding/
cd /usr/local/opt/go/libexec/src/encoding/binary
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/encoding/binary.a -trimpath $WORK -p encoding/binary -complete -buildid 28281a7593e05d8be86edf7aec5326180fe0db4c -D _/usr/local/opt/go/libexec/src/encoding/binary -I $WORK -pack ./binary.go ./varint.go
mkdir -p $WORK/fmt/_obj/
cd /usr/local/opt/go/libexec/src/fmt
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/fmt.a -trimpath $WORK -p fmt -complete -buildid 7cccdc24baafe1cf2c88f89388c5859eed73b83e -D _/usr/local/opt/go/libexec/src/fmt -I $WORK -pack ./doc.go ./format.go ./print.go ./scan.go
mkdir -p $WORK/github.com/veandco/go-sdl2/sdl/_obj/
mkdir -p $WORK/github.com/veandco/go-sdl2/
cd /Users/caio/golang/src/github.com/veandco/go-sdl2/sdl
CGO_LDFLAGS="-g" "-O2" "-lSDL2" /usr/local/opt/go/libexec/pkg/tool/darwin_amd64/cgo -objdir $WORK/github.com/veandco/go-sdl2/sdl/_obj/ -importpath github.com/veandco/go-sdl2/sdl -- -I/usr/local/opt/libiconv/include -I /usr/local/Cellar/sdl2/2.0.4/include/SDL2 -I $WORK/github.com/veandco/go-sdl2/sdl/_obj/ audio.go blendmode.go clipboard.go cpuinfo.go endian.go error.go events.go filesystem.go gamecontroller.go gesture.go haptic.go hints.go joystick.go keyboard.go keycode.go loadso.go log.go mouse.go pixels.go power.go rect.go render.go rwops.go scancode.go sdl.go surface.go sysrender.go syswm.go timer.go touch.go version.go video.go
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/github.com/veandco/go-sdl2/sdl.a -trimpath $WORK -p github.com/veandco/go-sdl2/sdl -buildid 3e37e8ed9ec8030d24258ab93e82f09f69b05afa -D _/Users/caio/golang/src/github.com/veandco/go-sdl2/sdl -I $WORK -pack ./helpers.go ./yuv_sw_c.go
# github.com/veandco/go-sdl2/sdl
../../golang/src/github.com/veandco/go-sdl2/sdl/yuv_sw_c.go:17: undefined: Surface
../../golang/src/github.com/veandco/go-sdl2/sdl/yuv_sw_c.go:18: undefined: Surface
It's a little tricky to be able to cross-compile it from Mac to Windows because it requires the native SDL2 library for Windows to link against. But I'm keeping this issue here just in case it is indeed possible.
Go requires a C/C++ cross compiler for Windows for it to cross compile cgo stuff.
I used mingw-w64 on ArchLinux to compile a basic snake game. An old build of mingw-w64 is available for Mac. Most popular Linux distros have mingw-w64 available.
Then you need to download mingw devel versions of sdl available at:
https://www.libsdl.org/download-2.0.php https://www.libsdl.org/projects/
cgo is normally disabled during cross compile as said by Dave Cheney at:
https://stackoverflow.com/questions/32309030/go-1-5-cross-compile-using-cgo-on-os-x-to-linux-and-windows
Hence the CGO_ENABLED="1" flag.
This command works:
env CGO_ENABLED="1" CC="/usr/bin/x86_64-w64-mingw32-gcc" GOOS="windows" CGO_LDFLAGS="-lmingw32 -L/usr/x86_64-w64-mingw32/lib -lSDL2main -lSDL2" CGO_CFLAGS="-I/usr/x86_64-w64-mingw32/include/SDL2 -D_REENTRANT" go build -x snake.go
Edit: As of now the game works on Wine and Windows 10 by statically copying respective .dll files beside it.
Thanks @demonshreder. I'll try it out and put in the README if I can do it successfully. 👍
Hi @veeableful, were you able to look into cross compiling?
Hi @demonshreder, sorry I totally slipped this one! I just tested cross-compiling on Linux to produce a Windows binary and it works with your guide. I have written a guide for Linux-to-Windows version inside README.md.
I'll try on OSX next!
@demonshreder You're right. I've added them to the README.md!
Thank you. I had deleted my previous comment later thinking the additional links from windows setup help should be fine but in retrospect a linux user wouldn't stumble upon it easily.
Hope you are able to get it working on Mac OS.
Hi @caioariede, I've added a guide to cross-compile from Mac to Windows on the README.md. If you're still here, I would love to have your input!
Otherwise, I'll wait for people to confirm that the guide is working for them.
You might be interested in issue 382. If we can remove CGo on Windows, you only need a Go compiler and the SDL2.dll
.