環境: macOS Catalina / Big Sur (2021年2月現在)
コマンドライン・デベロッパツール(Command Line Developer Tools)は、Appleが提供しているC/C++の処理系です。C/C++のほかに、Swift、Python3、およびGitなどが含まれます。
Xcodeをインストールしなくても、コマンドライン・デベロッパツールだけインストールすればCコンパイラをターミナルから使うことができます。
Macに最初からインストールされているもの
次の言語はデベロッパツールをインストールしなくても最初からMacに入っています。場所は /usr/bin
です。
Perl 5.18.4、PHP 7.3.11、Python 2.7.16、Ruby 2.6.3
なお、railsコマンドが入っていますが、次のメッセージを出すだけのものです。
% rails --version
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command.
スタブとデベロッパツールのインストール
/usr/bin
には、clang、swift、python3、gitなどのコマンドがあります。これらを仮に「スタブ」と呼んでおきます。スタブを実行すると次のようにデベロッパツールのインストーラが起動します。
インストールすると、 /Library/Developer/CommandLineTools/usr/bin
にコマンドが配置されます。インストール後に /usr/bin
のスタブを実行すると、インストーラではなく /Library/Developer/CommandLineTools/usr/bin
の下の対応するコマンドが実行される、という仕組みになっています。
アンインストール
/Library/Developer/CommandLineTools
をまるごと削除すれば、デベロッパツールをアンインストールできます。スタブを実行すると、再びインストーラが起動するようになります。
% sudo rm -rf /Library/Developer/CommandLineTools
ダウンロードしてインストール
Apple Developerのアカウントがあれば、次のサイトからダウンロードしてインストールもできます(自分で試したことはありません)。
Cコンパイラ
コマンド
デベロッパツールでは、ccコマンドもgccコマンドも中身はclangです。
インクルードパスとライブラリパス
Cのインクルードパスのリストは、「clang -v ソースファイル」で調べられます。
% clang -v hello.c
# 略
/usr/local/include
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
/Library/Developer/CommandLineTools/usr/include
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks (framework directory)
リンカのライブラリパスを調べる方法は、よくわからない。これでいいのだろうか。
% clang -Xlinker -v hello.c
# 略
Library search paths:
/usr/local/lib
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib
わからないこと
- 現在のデベロッパツールのバージョンを知る方法。
- 自動的にアップデートされるのかどうか。システム環境設定の「ソフトウェアアップデート」でデベロッパツールをアップデートしたことがあるような気がするが、気のせいかもしれない。