C++ コンパイラ (およびリンカー) の移植可能な名前

C++ コンパイラ (およびリンカー) の移植可能な名前

cc は C コンパイラの POSIX 名です。C++ コンパイラ (およびリンカー) の一般的な名前はありますか。g++プレーンな gcc または ld を使用する場合には含まれないいくつかのライブラリも追加されることに注意してください。

答え1

POSIX Cコンパイラのフロントエンドはc99;ccは広く利用可能ですが、保証されているわけではありません。POSIX は C++ 関連のものを何も指定していないため、C++ コンパイラとリンカーを呼び出す標準化されたコマンドは見つかりません。

一般的な慣行(例えばGNU メイクCC) は、変数とに頼ることですCXX。GNU の場合、それらのデフォルト値はそれぞれ と ですcc。BSDでは、 と がg++使用される傾向があります(例を参照)。ccc++OpenBSDの設定) リンカーはコンパイラ ドライバーを介してアクセスされ、明示的に呼び出されることはありません。

答え2

Linux に関しては、過去 20 年間に私が見た Makefile のほとんどはgcc/のみを使用していますg++。GCC ではなく実際のリンカーを使用する場合は、通常 を指定します。ld私が見たのはcc1 回くらいです。

ccほとんどの Linux ディストリビューションはからへのシンボリックリンクを提供していますgccが、GCC を削除して代わりに clang をインストールした場合は提供されません。

移植可能かどうかはわかりません。たとえば、FreeBSD は最近 Clang/LVM に移行しましたが、他の BSD は引き続き GCC を使用し、Mac OS も Clang を使用しています。Android には独自のツールチェーンがあります。

他の Unix は使用したことがないので、コメントはありません。

あなたのユースケースは何ですか? 質問を編集して詳細を入力してください。

関連情報