sciter-sdk / go-sciter

Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development
https://sciter.com
2.57k stars 268 forks source link

Cross compilation (with Go Win AMD64) and GOARCH=386 brings undefined events #59

Open dtrehas opened 7 years ago

dtrehas commented 7 years ago

Typing go get -x github.com/sxiter-sdk/go-sciter displays..

github.com/sciter-sdk/go-sciter

src\github.com\sciter-sdk\go-sciter\types_string.go:27: undefined: BehaviorEvent src\github.com\sciter-sdk\go-sciter\types_string.go:62: undefined: MouseEvent src\github.com\sciter-sdk\go-sciter\types_string.go:78: undefined: CursorType src\github.com\sciter-sdk\go-sciter\types_string.go:89: undefined: KeyEvent src\github.com\sciter-sdk\go-sciter\types_string.go:100: undefined: FocusEvent src\github.com\sciter-sdk\go-sciter\types_string.go:111: undefined: ScrollEvent src\github.com\sciter-sdk\go-sciter\types_string.go:122: undefined: GestureCmd src\github.com\sciter-sdk\go-sciter\types_string.go:139: undefined: GestureState src\github.com\sciter-sdk\go-sciter\types_string.go:171: undefined: GestureTypeFlag src\github.com\sciter-sdk\go-sciter\types_string.go:197: undefined: DrawEvent src\github.com\sciter-sdk\go-sciter\types_string.go:197: too many errors

Is it something I haven't done properly?

pravic commented 7 years ago

OS?

$ go version
go version go1.7.5 windows/amd64

$ gcc --version
gcc (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 5.3.0

$ go get -x github.com/sciter-sdk/go-sciter
...

$ cd %GOPATH%\src\github.com\sciter-sdk\go-sciter\examples\simple

$ go build -v .
github.com/sciter-sdk/go-sciter
github.com/sciter-sdk/go-sciter/window
github.com/sciter-sdk/go-sciter/examples/simple

$ dir /b
simple.exe
simple.go
simple.html
dtrehas commented 7 years ago

Hmm.. again..

gcc (i686-posix-dwarf-rev1, Built by MinGW-W64 project) 6.3.0 go version go1.7.4 windows/amd64 GOARCH=386 C:\Programming\sciter404\bin**32**>

C:\Programming> go get -x gopkg.in/sciter-sdk/go-sciter.v4 cd . git clone https://gopkg.in/sciter-sdk/go-sciter.v4 C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4 cd C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4 git submodule update --init --recursive cd C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4 git show-ref cd C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4 git submodule update --init --recursive WORK=C:\Users\user\AppData\Local\Temp\go-build339351674 mkdir -p $WORK\gopkg.in\sciter-sdk\go-sciter.v4_obj\ mkdir -p $WORK\gopkg.in\sciter-sdk\ cd C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4 "C:\Programming\Go.1.7\pkg\tool\windowsamd64\compile.exe" -o "C:\Users\user\AppData\Local\Temp\go-build339351674\gopkg.in\sciter-sdk\go-sciter.v4.a" -trimpath "C:\Users\user\AppData\Local\Temp\go-build339351674" -p gopkg.in/sciter-sdk/go-sciter.v4 -complete -buildid c6149786f3bee21c9adb1bf52c598df0e4fc44b7 -D /C_/Programming/GOPATH/src/gopkg.in/sciter-sdk/go-sciter.v4 -I "C:\Users\user\AppData\Local\Temp\go-build339351674" -I "C:\Programming\GOPATH\pkg\windows_386" -pack "C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\generate.go" "C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go" "C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\value.go" "C:\Programming\GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\wrapper.go"

gopkg.in/sciter-sdk/go-sciter.v4

GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:27: undefined: BehaviorEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:62: undefined: MouseEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:78: undefined: CursorType GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:89: undefined: KeyEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:100: undefined: FocusEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:111: undefined: ScrollEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:122: undefined: GestureCmd GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:139: undefined: GestureState GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:171: undefined: GestureTypeFlag GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:197: undefined: DrawEvent GOPATH\src\gopkg.in\sciter-sdk\go-sciter.v4\types_string.go:197: too many errors

Is anything wrong with the gcc compiler?

dtrehas commented 7 years ago

I'm suspecting that stringer can not be built.

And this is a problem that I detected when M$ VS Code editor could not compile tools based to golang.org/x/tools. Stringer is one of that.

Many people complained about this issue. I'm suspecting there is a block downloading these tools

pravic commented 7 years ago

What is stringer?

pravic commented 7 years ago

GOARCH=386

I haven't tried cross-compilation yet.

dtrehas commented 7 years ago

It seems that when i m using 32-bit go compiler the compilation works. It fails immediately (obviously) when GOARCH=amd64 but gives all the aforementioned errors when GOARCH=386

huxiyu commented 6 years ago

(1) install mingw32 and mingw64

C:\mingw32
C:\mingw64

set system environment, add C:\mingw32\bin and C:\mingw64\bin to path

confirm install well, you can test in cmd, well see it below :

d:\>i686-w64-mingw32-gcc
i686-w64-mingw32-gcc: fatal error: no input files
compilation terminated.
d:\>x86_64-w64-mingw32-gcc
x86_64-w64-mingw32-gcc: fatal error: no input files
compilation terminated.

(2) golang install amd64 version, not to use 386 version

d:\>go version
go version go1.8.1 windows/amd64

(3) cross-compilation

REM 32-bit build:
set CGO_ENABLED=1
set GOARCH=386
set GOOS=windows
set CC=i686-w64-mingw32-gcc
go build -ldflags "-H windowsgui -w -s" -o demo_windows_386.exe

REM 64-bit build:
set CGO_ENABLED=1
set GOARCH=amd64
set GOOS=windows
set CC=x86_64-w64-mingw32-gcc
go build -ldflags "-H windowsgui -w -s" -o demo_windows_amd64.exe

you can put it to .bat file

pravic commented 6 years ago

@huxiyu Awesome!

fcying commented 5 years ago

It can work now. CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows go build . need set CGO_ENABLED=1, when I cross compile, CGO_ENABLED need set again?

============================================================== I have encountered the same problem when I compile from linux to windows.

$/usr/bin/x86_64-w64-mingw32-gcc --version
x86_64-w64-mingw32-gcc (GCC) 6.3.0 20170516

$go version
go version go1.11.2 linux/amd64

$CC=/usr/bin/x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 go build .
# github.com/sciter-sdk/go-sciter
../../github.com/sciter-sdk/go-sciter/types_string.go:27:9: undefined: BehaviorEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:62:9: undefined: MouseEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:78:9: undefined: CursorType
../../github.com/sciter-sdk/go-sciter/types_string.go:89:9: undefined: KeyEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:100:9: undefined: FocusEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:111:9: undefined: ScrollEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:122:9: undefined: GestureCmd
../../github.com/sciter-sdk/go-sciter/types_string.go:139:9: undefined: GestureState
../../github.com/sciter-sdk/go-sciter/types_string.go:171:9: undefined: GestureTypeFlag
../../github.com/sciter-sdk/go-sciter/types_string.go:197:9: undefined: DrawEvent
../../github.com/sciter-sdk/go-sciter/types_string.go:197:9: too many errors