g++ – GNU C++ コンパイラ

ビルド

g++ コマンドは、GNU Compiler Collection (GCC) に含まれる C++ コンパイラです。
C++ ソースコードをオブジェクトファイルや実行可能ファイルに変換するために利用されます。
gcc と似ていますが、標準で C++ ライブラリをリンクする点が異なります。

構文(Syntax)

g++ [オプション] <ソースファイル>... -o <出力ファイル>

主なオプション一覧

オプション説明使用例
-o <file>出力ファイル名を指定g++ main.cpp -o main
-cコンパイルのみ行いオブジェクトファイルを生成g++ -c main.cpp
-Wall一般的な警告を有効化g++ -Wall main.cpp -o main
-Werror警告をエラーとして扱うg++ -Werror main.cpp
-O0 / -O1 / -O2 / -O3最適化レベルを指定g++ -O2 main.cpp -o main
-gデバッグ情報を付加g++ -g main.cpp -o main
-std=c++11 など使用する C++ 標準を指定g++ -std=c++17 main.cpp -o main
-I<dir>インクルードディレクトリを追加g++ -I./include main.cpp -o main
-L<dir>ライブラリディレクトリを追加g++ -L./lib main.cpp -lmylib -o main
-l<name>ライブラリをリンクg++ main.cpp -lpthread -o main

実行例

シンプルなコンパイル

g++ hello.cpp -o hello
./hello

複数ファイルをコンパイル

g++ main.cpp util.cpp -o program

オブジェクトファイルを生成してリンク

g++ -c main.cpp
g++ -c util.cpp
g++ main.o util.o -o program

デバッグ情報を付加

g++ -g main.cpp -o main
gdb ./main

最適化してコンパイル

g++ -O2 main.cpp -o main

C++17 準拠でコンパイル

g++ -std=c++17 main.cpp -o main

スレッドライブラリをリンク

g++ thread_example.cpp -lpthread -o thread_example

エラー例(ソースが存在しない場合)

g++ notfound.cpp -o test

出力例:

g++: error: notfound.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.

関連コマンド

  • gcc : C コンパイラ(標準で C++ ライブラリをリンクしない)。
  • make : プログラムのビルドを自動化するツール。
  • ld : リンカ。

備考

  • g++ は C++ 専用のフロントエンドで、リンク時に自動的に C++ 標準ライブラリ(libstdc++)をリンクします。
  • gcc で C++ をコンパイルすることも可能ですが、その場合は明示的に -lstdc++ を指定する必要があります。
  • -std=c++XX オプションを指定して、使用する C++ 標準(C++11 / 14 / 17 / 20 / 23 など)を選ぶのが一般的です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント