gcc -o は、ビルド出力を出力ファイルに書き込みます。
gcc -O は、コンパイラの最適化レベルを設定します。
ビルド出力を出力ファイルに書き込みます。
$ gcc [options] [source files] [object files] -o output file
myfile.c:
// myfile.c
#include <stdio.h>
void main()
{
printf("Program run\n");
}
端末でmyfile.cをビルドし、出力ファイルmyfileを実行します。
$ gcc myfile.c -o myfile
$ ./myfile
Program run
$
コンパイラの最適化レベルを設定します。
オプション | 最適化レベル | 実行時間 | コードサイズ | メモリ使用量 | コンパイル時間 |
---|---|---|---|---|---|
-O0 | コンパイル時間の最適化 (デフォルト) | + | + | - | - |
-O1 または -O | コードサイズと実行時間の最適化 | - | - | + | + |
-O2 | コードサイズと実行時間の最適化 | -- | + | ++ | |
-O3 | コードサイズと実行時間の最適化 | --- | + | +++ | |
-オス | コードサイズの最適化 | -- | ++ | ||
-オーファスト | 高速で正確でない数学計算を備えた O3 | --- | + | +++ |
+増やす ++さらに増やす +++さらに増やす -減らす --もっと減らす ---さらに減らす
$ gcc -Olevel [options] [source files] [object files] [-o output file]
myfile.c:
// myfile.c
#include <stdio.h>
void main()
{
printf("Program run\n");
}
端末でmyfile.cをビルドし、出力ファイルmyfileを実行します。
$ gcc -O myfile.c -o myfile
$ ./myfile
Program run
$