Gcc

提供: MonoBook
2013年8月11日 (日) 08:58時点における118.86.231.95 (トーク)による版 (適当に作成。)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

gccとは、超便利なC言語C++用のコンパイラである。 Adaとか他の言語コンパイルできるかもしれません。

入手方法

Windows

C言語・C++のエディタであるDev-C++というソフトをダウンロードすると、 (コンパイラ付きのものを選べば)gccがついてきます。
Dev-C++はhttp://orwelldevcpp.blogspot.jp/からダウンロードできます。

コンパイラ単体は、Sourceforgeからもダウンロードできます。 しかし、大量のファイルのダウンロード・解凍がめんどくさいので、上のソフトをおすすめします。

公式サイト→バージョン名→our mirror sites→左にJapanと書いてある項目→ releases→バージョン→(バージョン).tar.gzとたどってもダウンロードできると思いきや、 これはソースコードしか入っていないようです。気をつけましょう。

Linux

運が悪くなければ、多分初期状態で入っています。 入っていなければ、ググってください。(適当)

Mac

未稿

使い方

gccはC言語のソースコードをコンパイルするコマンドです。 C++の場合は、gccと書いてあるところをg++と読み替えてください。

基本

$ gcc -o 出力ファイル名 入力ファイル名

というコマンドで、とりあえずコンパイルできます。

最適化

$ gcc -O2 -o 出力ファイル名 入力ファイル名

のように-O2を付けると、最適化してくれるはずです。でも、たまに誤動作するバイナリができるので注意が必要かもしれません。

デバッグ

$gcc -g3 -o 出力ファイル名 入力ファイル名

のように-g3を付けると、デバッグ用の情報がバイナリに付加されます。

変な表現のチェック

$gcc -Wall -Wextra -o 出力ファイル名 入力ファイル名

のように-Wall -Wextraを付けると、最大限(要出典)警告してくれるようになります。
scanfが警告されてうざい時は、-Wno-unused-resultを付けるといい感じになりそうです。
(もともと警告されない環境の時は、これを付けるとエラーになることがあります)

定数倍高速化

$gcc -fopenmp -o 出力ファイル名 入力ファイル名

のように-fopenmpを付け、ソースコード内のたくさん回るfor文の前に

#ifdef _OPENMP
#pragma omp parallel for
#endif

というおまじないを書くと、実行時のCPU使用率が上がる代わりに実行が早くなる場合があります。
ただし、元のソースコードによっては、逆に遅くなったり動作がおかしくなったりします。