I’ve used mingw in the past, the exe usually is 10x the size and wants the entire binary of any library used as well and first requires you to download the source windows version of the lib and link it. Meaning a small SDL2 project on Linux was I think 100kib while on windows it was 1mib + 2.5 mib
Windows has dll hell… so basically, to ge around this, some tools statically link by default. It’s not an ideal solution, but it works most of the time… and regarding how unmainatained a Windows install might be (old installs, like Win7) or how badly updated/upgraded it might be (newer installs, Win10 and 11), I guess it is the only choice you actually have to make your app run on as many Windows systems as possible.
Since I don’t do this professionally it doesn’t have to run on any windows systems, I just was stuck with windows recently so I programmed in a GitHub codespace and compiled for Windows which is how I found out about all that I’m so happy not to have run into problems like this on Linux.
Linux is a smooth ride when it comes to binaries… might miss a few dependencies here and there, but all easily fixed if you just install them.
Windows on the other hand 😬…
If you have WSL set up run
strip your.exe
It often reduces the size a fair bit
Doesn’t it work in Linux normally?
Oh sure, just figured this was all done under windows.
Nope I used a GitHub codespace since I didn’t have a C compiler on the windows installation I was stuck with.
Do it the long way and compile in a vm.
My thoughts exactly… seems to be the safest route.
Best I can do is make an elf that mostly works and the memory manager seems pretty solid but the second you start doing stuff with strings, it fucks all up and I never figured out that bug after months so it is what it is. If you want to print a string you have to drop into real mode first.
I was able to use this guys docker image and tool in order to cross compile my Rust programs in the past. They were very simple programs so I dont know how well it works for larger projects.
I heard recently that you can use the zig compiler to cross compile rust programs.
You could even cross-compile from musl… very cool 👍!
Is it’s C, you could use Cosmopolitan
No, it’s Vala… and it’s not my project, client just wants this to run on Windows.
Simply install Ubuntu from Microsoft Store.
They should just use reverse-wine, if that exists.
Wish it did…