LLVM/clang++
表示
< LLVM
はじめに
[編集]Clang++はLLVMプロジェクトの一部として開発されているC++コンパイラフロントエンドです。本ハンドブックでは、コマンドとしてのclang++(1)に焦点を当て、その基本的な使い方から高度なオプションまでを解説します。
Clang++の概要
[編集]Clang++とは
[編集]- Clang++はClangのC++コンパイラフロントエンド。
- G++と互換性がありながらも、高速なコンパイルと優れたエラーメッセージを提供。
cc1plusやcc1asがインプロセスで実行されるため、プロセス生成のオーバーヘッドが少なく、高速なコンパイルを実現。
Clang++のインストール
[編集]FreeBSDでのインストール
[編集]ベースシステムに含まれているので、インストールは不要です。
macOSでのインストール
[編集]$ brew install llvm
Linuxでのインストール (例: Debian系)
[編集]$ sudo apt install clang
基本的な使い方
[編集]C++ソースコードのコンパイルと実行
[編集]$ clang++ hello.cpp -o hello $ ./hello
コンパイルのみ (オブジェクトファイル生成)
[編集]$ clang++ -c hello.cpp -o hello.o
最適化レベルの指定
[編集]$ clang++ -O2 hello.cpp -o hello
デバッグ情報を含めたコンパイル
[編集]$ clang++ -g hello.cpp -o hello
よく使うオプション
[編集]よく使うオプション オプション 説明 -Wall一般的な警告を有効化 -Wextra追加の警告を有効化 -Werror警告をエラーとして扱う -std=c++17C++の標準を指定 -std=c++20C++20の標準を指定 -stdlib=libc++libc++標準ライブラリを指定 -march=nativeネイティブアーキテクチャに最適化
Clang++とG++の違い
[編集]Clang++とG++の違い 項目 Clang++ G++ エラーメッセージ 分かりやすい 分かりにくい コンパイル速度 高速 低速 消費メモリ 少ない 非常に多い モジュール性 高い 低い
まとめ
[編集]本ハンドブックでは、Clang++の基本的な使い方とオプションを紹介しました。より高度な機能については、公式ドキュメントやclang++ --helpの出力を参照してください。