Loose-Info.com

Last Update 2020/10/31


TOP - 各種テスト - gcc - -specs=オプション

-specs=ファイル

実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル


sample.ccc
/* -specs= オプション動作確認用ソースファイル */ #include <stdio.h> int main(void) { printf("-specs= オプション動作確認用ソースファイル\n"); return 0; }

test.spec
拡張子「.ccc」をC言語のソースファイルと設定
.ccc: @c

動作テスト


-specs= オプション無しでコンパイルを実行
$ gcc -v sample.ccc <--- -specs= オプション無しでコンパイルを実行 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper 拡張子によりオブジェクトファイルと判定され直接リンカに処理される /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... sample.ccc ... sample.ccc: file not recognized: file format not recognized <--- オブジェクトファイルではないのでエラー発生 collect2: error: ld returned 1 exit status $

-specs=test.spec指定でコンパイルを実行
$ gcc -v -specs=test.spec sample.ccc <--- -specs=test.spec指定で実行 Using built-in specs. Reading specs from test.spec <--- test.specの読み込み COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample.ccc ... -o /tmp/ccalkQ4G.s ^^^ sample.cccのコンパイル as -v --64 -o /tmp/cctq2rfg.o /tmp/ccalkQ4G.s <--- アセンブル /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... <--- リンク COLLECT_GCC_OPTIONS='-v' '-specs=test.spec' '-mtune=generic' '-march=x86-64' $ エラー無しで正常終了