命令可以在机器之间传输吗?

命令可以在机器之间传输吗?

我有一个带有 2 台 Linux 机器的隔离系统,其中一台运行 CentOS,另一台运行自定义操作系统。自定义操作系统没有 gcc,我可以用以太网电缆将它们连接起来,并尝试从 /bin 复制 gcc 文件,复制成功,文件完好无损,但是当我尝试运行命令时,它显示一条错误,提示无法运行二进制文件。

答案1

大多数程序二进制文件都动态链接到其主机系统上的库。执行它们时,将加载相关库以使程序能够运行。当您复制“gcc”二进制文件时,您并没有复制所有相关库,因此当您在自定义机器上运行它时(我怀疑它有不匹配的库),它将无法运行。下面将向您显示 gcc 二进制文件链接到哪些库(在 CentOS 机器上):

ldd /bin/gcc

要在您的自定义系统上获得一个可以运行的 gcc,需要做更多的工作 - 不了解您的自定义系统,很难知道这有多棘手。可能涉及在您的 CentOS 机器上交叉编译为您的自定义系统设计的静态链接 gcc,并将其复制过来。

相关内容