【发布时间】:2025-12-05 17:00:02
【问题描述】:
如果您使用所有平台通用的所有标准 C 库编写 C 程序,无论是 Unix(任何风格)还是 Windows(即 stdio.h、math.h 等),并使用标准编译器(即 GCC)并在任何一个相同的 CPU 架构上运行它,为什么二进制文件不能在符合所有上述条件的不同机器上运行?
当我在 X86 Mac 上仅使用标准库编译 C 程序时,为什么编译后的二进制文件不能在相同 CPU 架构的 Linux 或 Windows 下运行?
是因为在 C 运行时发生了特定于平台的库链接还是什么?
【问题讨论】:
-
这是一堵文字墙,最后你会尖叫。这不是格式化问题的方式。
-
我的眼睛受伤了...请整理格式
-
这是我在 SO 上见过的格式最差的问题。你应该得到奖励。
-
以防万一您不知道:大多数互联网用户可能会考虑详尽的大写用法大喊大叫。如果你改变这一点,你可能会得到更严肃的答案,因为大多数人并不真正喜欢被人骂。
-
您可能正在编写与操作系统无关的代码,但编译器使用的库不是。例如:
printf调用特定于操作系统的函数来写入控制台。