“跨平台”是指在许多不同平台上工作的东西,可能是操作系统或 CPU(类型 (x86/MIPS) 或位大小 (32/64))。这并不意味着是否需要重新构建才能在其他平台上运行,例如 QT 可以针对许多平台,但您的应用程序可能需要在每个平台上重新构建,或者您可以构建一次,例如 java 或 .Net
“交叉编译器”是指该平台上的编译器,它使程序可以在另一个平台上运行。因此在 Win32 上构建 WinCE 可执行文件。或者,您可以通过构建在 Windows 中运行的 GCC 版本,在窗口框上构建 Linux 应用程序,但输出目标是 Linux/Elf。如果你有一个嵌入式设备,你几乎总是交叉编译来构建目标可执行文件。
X86、X64 或任何 CPU。那是什么意思?它控制 .Net 应用程序如何针对一种体系结构或不针对一种体系结构,如果您针对,那么它不会在两者上运行,但编译器会进行一些优化。如果它是非目标(任何 CPU),它将在两者上运行。如果您直接调用外部 .dll 并硬链接 64 位或 32 位版本,这主要是有用的,因此只希望您的应用程序在相同的环境中运行。
在安装程序前面,Windows 64 位可以运行 32 位应用程序和 32 位安装程序,而 64 位应用程序不能在 32 位系统上运行。在其他平台上,您通常会为正在运行的架构(Linux)重建代码,或者在 Mac 上下载通用可执行文件(我认为其中有多个目标构建)