Re:Qt binding for Go with support for all major operating sy...
by therecipe on Friday November 11, 2016 @12:30PM
(#12932585)
author here;
Using Docker saved me from creating the code to cross compile from windows->linux, darwin->linux/windows, ...
And this alone was worth it, but being able to ship something that works out of the box is nice a nice bonus :)
edit: I'm also planning to create macOS and iOS target images.
Re:Qt binding for Go with support for all major operating sy...
by herge on Friday November 11, 2016 @11:42AM
(#12932202)
Docker will only let you cross-compile to OSes with the same kernel, which is relatively limited. A full set of say vagrant files would be slower, but a lot more polyvalent (but even then it would not let you, say, compile a windows binary from linux).
Re:Qt binding for Go with support for all major operating sy...
by detaro on Friday November 11, 2016 @11:48AM
(#12932249)
You can cross-compile to completely different environments. It just can be tricky to set up, so prepared docker images with e.g. the toolchain to build a Windows executable on Linux are great to have, and what is provided here.
Re:Qt binding for Go with support for all major operating sy...
by cryptarch on Friday November 11, 2016 @01:17PM
(#12932911)
I think it's a nice idea in theory to provide cross-compilation support by means of emulating all possible target architectures on the compiling machine.
Then I remember that I'd be managing a custom heterogenous compute cluster just to compile some code.
Re:Qt binding for Go with support for all major operating sy...
by mentat on Friday November 11, 2016 @01:48PM
(#12933141)
It's not emulation, it's cross-compilation which has existed basically forever. You don't have to target the same instruction set as the one you're compiling on.
Re:Qt binding for Go with support for all major operating sy...
by cryptarch on Friday November 11, 2016 @05:14PM
(#12934972)
I am well aware of that, I was referencing the concept of "cross-compilation" the GP seemed to have.
Re:Qt binding for Go with support for all major operating sy...
by mentat on Saturday November 12, 2016 @03:20PM
(#12939957)
I see what you mean now, using like qemu or something. So "emulated native compilation". It is an interesting concept. Sorry for misunderstanding you.
Re:Qt binding for Go with support for all major operating sy...
by cryptarch on Saturday November 12, 2016 @08:33PM
(#12941312)
Indeed, "virtualbox-the-crosscompiler" (probably from hell). QEMU would be a few orders of magnitude slower but I think it supports many more archs.
No hard feelings :)
Re:Qt binding for Go with support for all major operating sy...
by seiferteric on Friday November 11, 2016 @12:27PM
(#12932557)
As long as they provide the correct kernel headers and library headers (libc etc) for your target, it should work fine in docker.
Re:Qt binding for Go with support for all major operating sy...
by lmb on Friday November 11, 2016 @11:46PM
(#12936652)
Go doesn't really use libc all that much. Syscalls are also implemented in pure go + as, so there aren't really header files to provide. That makes for a great cross-compilation story.
Next time I want to build a desktop app I'll have a go with this for definite.