我可以吗? - 使用 GCC 4.4 在 Fedora 14 中开发 C/C++,并使用 GCC 4.4 在 CentOS 5.2 中部署

我可以吗? - 使用 GCC 4.4 在 Fedora 14 中开发 C/C++,并使用 GCC 4.4 在 CentOS 5.2 中部署

我的生产环境运行的是 CentOS 5.2 和 5.5 版本。我需要使用 C/C++ 开发一个新工具并将其部署到这个生产环境中。

我计划在桌面上使用 Fedora 14 和 GCC 4.4,使用 Eclipse IDE 进行开发。然后我想将可执行文件部署到 CentOS 5.2 或 5.5。生产环境也将有 GCC 4.4。

由于 Fedora 和 CentOS 都是基于 RHEL,所以我认为这是可能的。

那么我可以这么做吗?

或者我是否也需要在我的开发桌面上安装 CentOS 5.2/5.5?

谢谢阿米特

答案1

如果您构建了静态二进制文件,那么您应该能够在几乎任何东西上构建,并在几乎任何地方运行。关于如何构建静态内容的确切细节,最好在 stackoverflow 上找到答案。

不过,在不同的环境中构建似乎有点愚蠢。为什么不自己构建一个 VM,或者在开发机器上构建一个与生产环境相同的 chroot。这样,您就不太可能遇到奇怪/意外的不兼容问题。

答案2

如果你将动态链接到 centos 上不存在的库,那么你也需要提供这些库

如果您提供源代码并在 centos 框中进行编译,您将需要提供您在代码中使用的任何标题或源文件。如果您不使用任何特殊的东西(例如,您只使用 libc),则无需提供额外的库。

还有一件事你需要注意,那就是 CPU 架构——如果你有 64 位的代码,它将无法在 32 位上运行。

答案3

这样做,但是你不应该。

最好在干净的环境中构建最终的生产软件包,而开发桌面肯定不会是干净的。由于 CentOS 是免费的,所以没有理由不拥有一个特殊的构建环境,每次从 kickstart 进行清理或从已知良好的快照恢复。这可能需要一点设置工作,但之后,您将知道生成的软件包将正常工作,不会意外地出现意外的依赖关系。

那么,你的生产环境需要 gcc 吗?不需要错误的将其放在那里(攻击者将复制他们自己的二进制文件),但通常生产应该尽可能集中。

相关内容