19
19

More than 5 years have passed since last update.

Clang初級

Posted at

とりあえず早引き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入門

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19