- 1. 概要
- 2. コンパイル・リンク
- 3. デバッグオプション
1. 概要
以前は、「FreeBSD」も「gcc」をコンパイラとして使用していましたが、「FreeBSD 9.0 RELEASE」より「Clang」を採用しました。
「gcc」は非推奨の拡張が多いため、世の中「Clang」へと移行しつつあるようです。
2. コンパイル・リンク
単純な、「C」のソース
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("hello world!\n");
return 0;
}
をコンパイル・リンクするならば
clang ソースファイル名.c
「C++」のソース
#include <iostream>
int main(int argc, char* argv[])
{
std::cout << "hello world!" << std::endl;
return 0;
}
ならば
clang++ ソースファイル名.cpp
になります。
どちらも、出力ファイル名を指定していないので、省略形の
a.out
になります。
ちなみに出力結果は、どちらも
hello world!
です。
3. デバッグオプション
デバッグのオプションは
clang -g -Ox
となります。
「-g」でデバッグ情報の生成。
「-Ox」はそれぞれ以下の意味を持ちます。
オプション | 意味 | 備 考 |
-O0 | 最適化なし | |
-O1 | -O0 と -O2 との中間。 | |
-O2 | ほぼ最適化。適度なレベルらしい。 | |
-Os | コードサイズを減少化。 | |
-Oz | -Os をさらに縮小 | |
-O3 | -O2 より大きく時間がかかる。 | |
-Ofast | 言語の標準の厳密な順守に違反する、他の積極的な最適化。 | |
-O4 | リンク時間を最適化。 | |
ちなみに、「clang」に対応するデバッガは、「lldb」ですが、「clang」でデバッグオプションを指定して作成したロードモジュールは、「gdb」でデバッグすることもできます。
|
      |