LoginSignup
1
1

More than 5 years have passed since last update.

gccの基本をはじめから

Last updated at Posted at 2018-05-20

gcc

gccコマンドは特に指定をしない場合、プリプロセス→コンパイル→アセンブル→リンクという処理を一括してくれる。
オプションを指定することでこれらを個別に実施することができる(リンクは除く)のだが、よくオプション名を忘れてしまうので、その備忘録

プリプロセス 

** 結果は標準出力へ出力される。

$gcc -E <FILE.c>

プリプロセス&コンパイル

** .sのファイル(アセンブリ言語のコード)が生成される。


$gcc -S <FILE.c>

アセンブル or プリプロセス&コンパイル&アセンブル

** .oのファイル(マシン語のコード)が生成される。


$gcc -c <FILE.s>

参考:#defineで内部で定義される文字列

内部的に#defineで定義されている文字列の多くは__(アンダースコア2つ)で始まるが、たまにそうでないものもある。たまにこれらと自分で定義した変数の名前が衝突して、意図しないプログラムの書き換えを引き起こすことがある(環境依存)。内部的に#defineで定義されている文字列を知っておけば、これを予防できる。

内部的に#defineで定義されている文字列を一覧で表示

**標準出力へ出力


$gcc -dM -xc -E /dev/null
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1