C言語 - clang

 クラウディア
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」でデバッグすることもできます。

ハイスピードプラン