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 | コードサイズと実行時間の最適化 | --- | + | +++ | |
-Os | コードサイズの最適化 | - | ++ | ||
-Ofast | 高速で正確な数学計算を行わない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
$