使用 GCC 在单一的构建机器上来为不同的 CPU 架构交叉编译二进制文件。
如果你是一个开发者,要创建二进制软件包,像一个 RPM、DEB、Flatpak 或 Snap 软件包,你不得不为各种不同的目标平台编译代码。典型的编译目标包括 32 位和 64 位的 x86 和 ARM。你可以在不同的物理或虚拟机器上完成你的构建,但这需要你为何几个系统。作为代替,你可以使用 GNU 编译器集合 (GCC) 来交叉编译,在单一的构建机器上为几个不同的 CPU 架构产生二进制文件。
假设你有一个想要交叉编译的简单的掷骰子游戏。在大多数系统上,以 C 语言来编写这个相对简单,出于给添加现实的复杂性的目的,我以 C++ 语言写这个示例,所以程序依赖于一些不在 C 语言中东西 (具体来说就是 iostream
)。
#include
#include
using namespace std;
void lose (int c);
void win (int c);
void draw ();
int main() {
int i;
do {
cout > i;
int c = rand ( ) % 21;
if (i > 20) lose (c);
else if (i c ) win (c);
else draw ();
}
while (1==1);
}
void lose (int c )
{
cout