今回は Mac ネタ。
macOS にコンパイラを入れたいけど Catarina の Xcode は 8.1GB もある。
ちょっと C を使うだけにこんな巨大なモンを入れるなんてイヤだ!
と思っていたけどコマンドラインツールというものがあるらしい。
日本語ブログにはロクな情報が無いので下記を見て。
How to Install Command Line Tools in Mac OS X (Without Xcode)
個別には選択できないのね、てかヘッダやライブラリ類の情報が無いけど。
筆者はぶっちゃけ CLang と標準ヘッダと Cocoa SDK だけでいいんだけど。
C 等の標準ヘッダは当然入ると思うけど何故かどこにも情報が無い。
インストールサイズも Xcode からいくつ減ったみたいなのしか出てこない。
よし疑問点は自分で導入して調べてみよう、まず現状 SSD 状況の確認。
異様に少ないかも、ほぼスクリプトというかテキストファイルばかりだもん。
筆者は大量なデジイチ画像や動画は全部 Fedora メインマシンに入れているので。
とっととリンク先コマンドでインストールしたら。
19.22 – 18.28 = 0.94
約 1 GB ってことね、Linux を知っているとコレでもデカい。
open /Library/Developer/CommandLineTools/
とコマンドを打って何がインストールされたか調べる。
Cocoa どころか Metal, WebKit 等のヘッダは上記に普通にあったわ。
てか SDK 丸ごとかよ、そりゃこんなサイズになるってばさ。
標準ヘッダは usr/includes 以下にある、Linux の /usr/includes と同じ。
C/C++ ヘッダは共通位置に、拡張子の無いものが C++ 用なので共存している。
ところで解っていると思うけど、新たにパスを通す必要は無い。
最初から /usr/bin にあるゾンビコマンドが該当コマンドを実行する。
Linux の pkg-config 相当は clang のオプションだけでまかなえる。
#include <stdio.h> // clang -o c_out test.c int main(void) { // C99 対応チェックをついでに for (int i=0; i<3; i++) { printf("%d\n", i); } return 0; }
と
#import <Foundation/NSString.h> // clang -o m_out test.m -framework Foundation int main(void) { const char *cstr = "スズキ"; NSString *nstr = @(cstr); NSLog(@"%@", nstr); return 0; }
をやってみると普通にビルドできた。
clang は gcc と -o オプションが共通なのね。
xcode-select -h で見るとアンインストールオプションが無い。
sudo rm -r /Library/Developer/CommandLineTools
だけでいいと思う、削除しないけど。