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.
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.
You want me to compile it best i can do is a git repo. And thats if it runs on windows in the first place.
@muntedcrocodile @0x4E4F should be able to run dosbox on any platform tho [gives you turbo pascal source]
Not really a solution if it has a GUI, dosbox only runs command line stuff.
Well that’s not at all true, but it won’t have the graphical environment you want.
What do you mean, dosbox can run programs with a GUI? Didn’t know that…
If it couldn’t do graphics it wouldn’t be very useful for old games. You can run Windows 3.1, or used to haven’t tried in a while. But it’s not what is needed here even if it can.
Simply install Ubuntu from Microsoft Store.
Do it the long way and compile in a vm.
My thoughts exactly… seems to be the safest route.
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.
They should just use reverse-wine, if that exists.
Wish it did…
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.
You could even cross-compile from musl… very cool 👍!
I heard recently that you can use the zig compiler to cross compile rust programs.