Gcc
gcc(読み:じーしーしー、語源:the GNU Compiler Collection)とは、超便利なC言語やC++などのコンパイラが詰まった夢の箱である。 Adaとか他の言語もコンパイルできるかもしれません。
紛争[編集 | ソースを編集]
gccのライセンスがGPL v2からGPL v3が変更になったことにBSD原理主義者たちは激怒し「GPL撲滅!gcc撲滅!」を掲げclangの開発を始めた。 BSD原理主義およびclangは邪悪なBSDの後ろ盾もあり急激に勢力を強めている。 コンパイラ地域での新たな紛争はオープンソース経済に混乱をあたえると見られ世界的に懸念されてる。
入手方法[編集 | ソースを編集]
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使用率が上がる代わりに実行が早くなる場合があります。
ただし、元のソースコードによっては、逆に遅くなったり動作がおかしくなったりします。