I am developing a cross-platform application and I need to determine whether machine B will be able to run the application that is compiled on machine A.
I am using Qt and I already understand that I need to either package the Qt libraries with the application or statically link against Qt itself.
I also understand that something compiled on Windows can't run on Linux.
However, there are still some other vectors that I'm not sure to what extent they matter. Here is the summary of my current understanding:
Affects Portability
- Operating System (Windows, Mac, Linux)
- Availability of third party libraries (Qt, static vs dynamic linking, etc)
May Affect Portability
- Flavor of Linux (Ubuntu, Red Hat, Fedora)
- Architecture (32 or 64-bit)
- Version of Operating System (Windows 7 vs Windows XP, Rhel5 vs Rhel6)
- Instruction type (i386, x64)
Of the May Affect Portability items, which ones actually do? Are there any that I am missing?