とりあえず早引きclangてことで。
使用するclangは以下なカンジ。
$ clang -v
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
Cソースから実行ファイルを作る
$ clang <ソースファイル> -o <実行ファイル名>
$ ls -a
<ソースファイル> <実行ファイル>
プリプロセッサだけ実行したい
$ clang -E <ソースファイル> 2>&1 | tee <出力ファイル名>
$ ls -a
<ソースファイル>
-E すると、コンソール上に結果が表示されるので、teeで捕まえます。
-E はプリプロセッサ展開結果を表示するだけなので、実行しても何も作成されません。
.i ファイルを出力するコマンドがありそうなものなのですが。
アセンブラ見たい
$ clang -save-temps <ソースファイル> -o <実行ファイル名>
$ ls -a
<ソースファイル> <プリプロセッサ展開結果.i> <アセンブラ.s> <オブジェクトファイル.o> <実行ファイル>
なんもかんも -save-temps で事足りるんですねわかります。
clangはオプションなしで実行すると、i ファイルも s ファイルも o ファイルも削除しちゃうんですね。
で、-save-temps 使うと削除されない、と。
参考サイト
.mjtの日記復帰計画
電脳スピーチ blog
可音月堂
【B2】C++テクニカルセッション
clang(1) - Linux man page
nothingcosmos wiki
Stack Overflow
clang-developers
llvm入門