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

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

cc は C コンパイラの POSIX 名です。 C ++コンパイラ(およびリンカ)には共通名がありますか?g++通常のgccまたはldを使用するときに含まれないいくつかのライブラリも追加されました。

答え1

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

一般的な慣行(例を参照GNUが作るCC)はおよび変数によって異なりますCXX。 GNUの場合、デフォルトはccそれぞれとBSDg++を好みます(例を参照)。ccc++OpenBSDの設定)。リンカは明示的に呼び出されず、コンパイラドライバを介してアクセスされます。

答え2

Linuxの場合、過去20年間に私が見たほとんどのMakefileはgcc/のみを使用しましたg++。誰かがGCCの代わりに実際のリンカーを使用しようとすると、通常一度見たldことがあります。cc

ccほとんどのLinuxディストリビューションはからのシンボリックリンクを提供しますgccが、GCCを削除してclangをインストールするとそうではありません。

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

私は他のUNIXを使ったことがないのでコメントできません。

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

関連情報