go-sdl2 icon indicating copy to clipboard operation
go-sdl2 copied to clipboard

Cannot cross-compile from Mac to Windows

Open caioariede opened this issue 9 years ago • 9 comments

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

caioariede avatar Feb 02 '16 17:02 caioariede

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.

aqiank avatar Feb 05 '16 09:02 aqiank

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.

demonshreder avatar Oct 28 '17 13:10 demonshreder

Thanks @demonshreder. I'll try it out and put in the README if I can do it successfully. 👍

veeableful avatar Oct 29 '17 01:10 veeableful

Hi @veeableful, were you able to look into cross compiling?

demonshreder avatar Nov 25 '17 15:11 demonshreder

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!

veeableful avatar Nov 27 '17 02:11 veeableful

@demonshreder You're right. I've added them to the README.md!

veeableful avatar Nov 27 '17 09:11 veeableful

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.

demonshreder avatar Nov 27 '17 10:11 demonshreder

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.

veeableful avatar Dec 02 '17 16:12 veeableful

You might be interested in issue 382. If we can remove CGo on Windows, you only need a Go compiler and the SDL2.dll.

gonutz avatar Feb 16 '19 19:02 gonutz