executables on other machines

Hi guys,

so I probably should know this by now but I seem to be a little unclear,

lets say if I compile a program on a 32 bit mingw compiler on windows for an intel x86 processor will that same executable run on a 32 bit windows machine with an ARM processor?

obviously the executable will not run on a uni machine if I compile it on a windows machine but the example above this is a little unclear for me.

and if my first example is true how is this possible as intel and arm processors have different instruction sets

also if I build a static or dynamic(dll) library one a 32 bit mingw compiler on windows with an intel x86 will that static library or/and dynamic be able to be used on a windows machine using an ARM processor??

thanks
I think all 32 bit windows machines can run the same executables. I am not sure how it does it, whether the arm version runs a translator between or whatever. That is how it is usually done, there are conversions from one cpu to another as an extra layer; this is how a VM on a non intel compatible cpu unix box runs windows programs.
Last edited on
will that same executable run on a 32 bit windows machine with an ARM processor?
No.

also if I build a static or dynamic(dll) library one a 32 bit mingw compiler on windows with an intel x86 will that static library or/and dynamic be able to be used on a windows machine using an ARM processor??
No.

x86-64 Windows can run both x86 and x86-64 Windows binaries. x86-64 binaries cannot be linked with x86 binaries. E.g. x86-64 executable and x86 DLL, or vice versa.
I don't know of any other combination of OS and hardware platform where multiple ISAs are supported natively and simultaneously.
thanks guys


will that same executable run on a 32 bit windows machine with an ARM processor?
No.



how come some programs which are downloadable online do not specify which processor you need? many software distributors just specify the OS and if you're running a 32 bit or 64 bit OS,how is this done?

Last edited on
also I compiled a pong game with a mingw 32 bit compiler running on windows 10 my cpu is an intel core i3-5005U and it runs(runtime binaries included) on a windows 8 64 bit OS with a AMD processor how is that possible?

also below if you want to download the SDL2 runtime binaries you can only choose your OS and if it's 32 bit or 64 bit?

https://www.libsdl.org/download-2.0.php


thanks
Unless otherwise specified, "32-bit" means"x86" and "64-bit" means "x86-64", as these are the two most common architectures (on non-embedded devices). It's not meant to imply that the program will run on ARM or any other random 32-bit architecture.
Last edited on
thanks Helios

but why does my program which was compiled on a PC running windows with the processor being intel also run on another windows machine using a completely different processor? in this case the processor being AMD
AMD and Intel manufacture CPUs that implement the same ISA: x86-64.
thanks Helios

that's the reason why then,

also from my research it looks like most laptop and desktops use either AMD or Intel processors so most executables compiled on a windows machine lets say 32 bit will run on most computer/desktops(if they have the same ISA ofcourse as you mentioned)


why does https://www.libsdl.org/download-2.0.php

SDL ^^ only give you an option for the runtime binaries on windows or unix 32 or 64 bit? my guess would you would actually have to compile the source code on other processors that are not compatible?
Last edited on
If there was also a FreeBSD build, you would ask "but where's the Android build?". And then, "but where's the Solaris SPARC build?". And so on. Every developer draws the line somewhere.
Oh. Yes, for many, many years (decades) AMD has produced cpus that are intel compatible. Missed that ARM == AMD's cpu (I don't keep up with AMD anymore).

Ill say it again. As far as I know, all windows machines can run all windows software within reason (64 bit can't run most or any? 16 bit anymore, and 32 bit can't run 64 bit programs, but apart from reversed generation gaps (running new stuff on old hardware, that is), it mostly all works). I have 4 or 5 programs that work on my up to the bleeding edge winX box that I have used since the late 90s. The only other exception I know about was a brief stint with that win NT thing that could not run anything with directx. There may be some other similar screwups by M$ in that vein that no one knows or cares about anymore.
Last edited on
Missed that ARM == AMD's cpu
Huh?

As far as I know, all windows machines can run all windows software within reason
No. Just no. Windows nowadays runs on a variety of platforms, not just the x86 family. That's what OP is asking about.
You can't run an x86 binary on Windows for ARM.
Topic archived. No new replies allowed.