是否可以使用 Intel 的编译器而不是 GCC 来编译完整的 Linux 系统?

bar*_*mac 27 compiling x86

也许有一些兼容性问题?

我的印象是,对于基于 Intel 的系统,Intel 编译器可能比 GCC 做得更好。也许已经有一个发行版尝试过这个?

我认为使用 Gentoo 可能非常简单。

Gil*_*il' 30

您将无法使用 icc 编译所有内容。许多程序使用 GCC 对 C 语言的扩展。然而,英特尔已经做出了很多努力来支持这些扩展中的大部分。例如,最新版本的 icc 可以编译 Linux 内核。

如果您喜欢以不同寻常的方式重新编译您的软件,Gentoo 确实是您的最佳选择。在对Gentoo的维基页面ICC描述了主要障碍。

首先进行基本的 Gentoo 安装,然后emerge icc. 只要您的系统上有任何用 icc 编译的二进制文件,就不要稍后删除 icc。请注意,icc 安装在/opt; 如果它不在您的根分区上,并且在启动时使用的任何程序是用 icc 编译的,则您需要将 icc 库复制到您的根分区。

设置/etc/portage/bashrc并声明您最喜欢的编译选项;请参阅Gentoo wiki以获得更详尽的脚本,该脚本支持使用不同的编译器构建不同的包(这是必要的,因为 icc 破坏了一些包)。

export OCC="icc" CFLAGS="-O2 -gcc"
export OCXX="icpc" CXXFLAGS="$CFLAGS"
export CC_FOR_BUILD="${OCC}"
Run Code Online (Sandbox Code Playgroud)


Eli*_*ady 14

这肯定会是一次有趣的经历。然而,使用替代编译器重新编译整个 Linux 发行版并不是那么简单。许多基本软件包依赖于 GCC 和其他 GNU 工具链实用程序。

对于那些不需要 GCC 来创建混合的包,使用替代编译器是可行的。可以将依赖于 GCC 的包替换为可以与您的编译器一起构建的其他包,但在大多数情况下,没有太多替代方案。如果有,您必须确定这些替代品是否能满足您的预期用途。

但真正的问题是:值得吗?如果您正在尝试构建嵌入式系统,替代编译器可能会生成较小的二进制文件。如果您正在构建计算集群,您可能会获得更快的代码执行速度。如果您正在构建桌面,您将获得很好的学习体验。

我认为最终(假设您正在构建桌面)您会发现许多源发行版用户最终决定的事实是正确的:优化、构建和重建所花费的时间远远超过了更快的代码执行所节省的时间。这并不是说它不应该做——它可能很有趣。如果你这样做,这个网站将是一个寻找答案和记录你的努力的好地方。