![如果我编译某些东西以使其在其他人的机器上运行,我需要知道什么?](https://linux22.com/image/810943/%E5%A6%82%E6%9E%9C%E6%88%91%E7%BC%96%E8%AF%91%E6%9F%90%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BB%A5%E4%BD%BF%E5%85%B6%E5%9C%A8%E5%85%B6%E4%BB%96%E4%BA%BA%E7%9A%84%E6%9C%BA%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%EF%BC%8C%E6%88%91%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E4%BB%80%E4%B9%88%EF%BC%9F.png)
如果我编译了某个程序并想将其二进制文件发送给朋友或发布到互联网上,我是否需要使用一些特殊的 GCC 参数?GCC 是否会针对我的特定 CPU 优化二进制文件,并且它是否可以在稍有不同的 CPU 或其他 Linux 发行版上运行?我还需要知道什么?
答案1
通常只需要知道二进制格式(mac、pc 或 unix 的 32 位或 64 位)以及是否需要任何特殊库或驱动程序。大多数台式机运行 64 位 pc 格式。但也有一些罕见的格式。Gcc 的默认选项没有优化应该没问题。有交叉编译器可让您在 unix 上编译 win 二进制文件。
答案2
这实际上取决于目标系统架构是什么。
因此,如果您尝试在 arm 或 ppc 架构上运行二进制文件,则需要分别具有 arm 或 ppc 的交叉编译工具链。
但是,如果您尝试在另一台计算机(通常使用奔腾架构)上运行它,您可能可以使用 32 位兼容二进制文件,因为 32 位可以轻松地在 64 位机器上运行,而且,除非您使用某些专有技术,否则您将能够使其跨平台兼容。
祝你好运。