也许存在一些兼容性问题?
我的印象是,对于基于Intel的系统,Intel编译器可能比GCC做得更好。也许已经有一个发行版尝试了这种方法?
我认为使用Gentoo可能很简单。
也许存在一些兼容性问题?
我的印象是,对于基于Intel的系统,Intel编译器可能比GCC做得更好。也许已经有一个发行版尝试了这种方法?
我认为使用Gentoo可能很简单。
Answers:
您将无法使用icc编译所有内容。那里的许多程序都使用C语言的GCC扩展。但是,英特尔为支持大多数这些扩展做出了很多努力。例如,最新版本的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}"
这肯定是一个有趣的经历。但是,使用替代编译器重新编译整个Linux发行版并不是一件容易的事。许多基本软件包都依赖于GCC和其他GNU工具链实用程序。
对于那些不需要GCC创建混合程序的软件包,可以使用替代编译器。可能有可能将GCC依赖的软件包替换为将由您的编译器生成的其他软件包,但是在大多数情况下,没有太多选择。如果存在,则必须确定这些替代方案是否对您的预期用途有效。
真正的问题是:是否值得?如果您尝试构建嵌入式系统,则其他编译器可能会生成较小的二进制文件。如果您要构建计算集群,则可以更快地执行代码。如果要构建台式机,您将获得出色的学习经验。
我认为最后(假设您正在构建桌面),您会发现许多源发行版用户最终决定是正确的:优化,构建和重建所花费的时间远远超过了更快的代码执行所节省的时间。这并不是说不应该这样做-这可能很有趣。如果您这样做,此站点将是寻找答案和记录您的努力的好地方。