5

我可以在最新的 Ubuntu(4.4.3 附带)上安装旧版本的 gcc/g++(4.1.3)并使用它来编译应该在 CentOS 上运行的 .so 吗?由于缺少导入(GLIB_2_11,...),使用 Ubuntu 版本的 gcc 编译的二进制文件无法在 CentOS 上加载。我需要 C++(包括异常),所以我不能只静态链接到我已经尝试过的 glibc。

我可以安装旧的 gcc 而不删除新的 gcc 吗?我该如何处理旧 gcc 所需的库?

我目前正在 CentOS 中开发代码,但使用起来非常痛苦。我真的很想迁移到 Ubuntu 桌面。

4

1 回答 1

5

g++-4.1适用于 Ubuntu;只需运行apt-get install g++-4.1然后运行g++-4.1而不是g++. 但是,仅使用较旧的编译器可能无法解决所有库问题。

就像 Joachim Sauer 所说,最好的选择是在 Ubuntu 上进行开发,然后在 CentOS 上进行最终编译。

即使您使用的是 C++,静态链接仍然应该是一种选择。(不过,最好在 CentOS 上编译并使用动态链接。)

编辑:虚拟机是在 CentOS 上构建的最直接的方法,但如果你想避免运行 VM 的内存和 CPU 开销并且不关心 Ubuntu 和 CentOS 内核之间的差异,那么你可以创建一个包含的子目录一个 CentOS 或 Fedora 文件系统和 chroot 来做你的构建。 这篇博文有详细信息。

于 2010-05-04T12:30:33.667 回答