互換性の問題があるのでしょうか?
Intelベースのシステムでは、IntelコンパイラがGCCよりも優れた仕事をする可能性があるという印象があります。おそらく、これを試みたディストリビューションがすでにあるのでしょうか?
Gentooを使用すると、これは非常に簡単だと思います。
互換性の問題があるのでしょうか?
Intelベースのシステムでは、IntelコンパイラがGCCよりも優れた仕事をする可能性があるという印象があります。おそらく、これを試みたディストリビューションがすでにあるのでしょうか?
Gentooを使用すると、これは非常に簡単だと思います。
回答:
すべてをiccでコンパイルすることはできません。そこにある多くのプログラムは、C言語のGCC拡張機能を使用しています。しかし、Intelはこれらの拡張機能のほとんどをサポートするために多大な努力を払ってきました。たとえば、最近のバージョンのiccはLinuxカーネルをコンパイルできます。
Gentooは、ソフトウェアを通常とは異なる方法で再コンパイルしたい場合の最善の策です。Gentoo wikiの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依存パッケージを、コンパイラーでビルドする他のパッケージに置き換えることは可能かもしれませんが、ほとんどの場合、あまり多くの選択肢はありません。存在する場合は、これらの代替が意図した用途に対して機能するかどうかを判断する必要があります。
しかし、本当の質問は次のとおりです。それは価値があるのでしょうか?組み込みシステムを構築しようとしている場合、代替コンパイラーがより小さなバイナリを生成する可能性があります。計算クラスターを構築している場合、コードの実行が速くなる可能性があります。デスクトップを構築している場合、素晴らしい学習体験が得られます。
最終的には(デスクトップを構築していると仮定して)、多くのソースディストリビューションユーザーが最終的に決定するものが真実であることがわかると思います。それはそれを行うべきではないということではありません-それは非常に楽しいかもしれません。あなたがそれをするなら、このサイトは答えを見つけて、あなたの努力を文書化する絶好の場所でしょう。