のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

g++コンパイラclang 簡単なコマンドのまとめ

Sponsored Links

皆さんこんにちわ
お元気ですか?私は元気です。

さて、今日はコンパイラについて
さて、g++で動作するコンパイラ、すげぇ…すげぇ…面倒なコマンドが沢山。

自動的に全て行う簡単な方法

g++ temp.cpp

これを実行し、./a.outとすると実行ができます。

前処理だけ

g++ -E temp.cpp

前処理が終了した段階のコードを見ることができます。

コンパイル

g++ -S temp.cpp

.sファイルが生成され、内容はアゼンブリファイル

オブジェクトファイルの生成

g++ -c temp.cpp

オブジェクトファイルを生成できます。これを結合すると実行ファイルを生成することができます。

リンク

g++ temp.o -o temp

オブジェクトファイルを連結させる

最適化

コンパイル時間が長くなる代わりに実行時間が高速化される模様

  • O + 数字
g++ -O3 temp.cpp

基本的に数字があがっていく度に最適化される手法が増加します。何やら-O3はやりすぎて-O2が最も良いという説があります。

警告

g++ -Wall temp.cpp
  • Wallで警告を出すようになります。

例えば、この関数使ってないよとか。色々出してくれます。

デバッグ

g++ -g temp.cpp

C++11の利用

g++ -std=c++11 -stdlib=libc++ temp.cpp

別件ですが絵を書いてみた。
上手くなりたい
f:id:tereka:20140611102738j:plain