C プログラムをコンパイルしているとき、出力は a.out に格納されます。コンパイルされた出力を別のファイルにリダイレクトするにはどうすればよいですか?
9 に答える
ほとんどの C コンパイラには-o
、次のようなオプションが用意されています。
gcc -o gentext gentext.c
cc -o mainprog -Llib -lmymath firstbit.c secondbit.o
xlc -o coredump coredump.c
-ofilename
will make filename
instead of a.out
.
マニュアルによると:
-o <file> Place the output into <file>
C の起源である Unix では、通常、C プログラムはモジュールごとにコンパイルされ、コンパイルされたモジュールは実行可能ファイルにリンクされます。foo.c
モジュールとで構成されるプロジェクトのbar.c
場合、コマンドは次のようになります。
cc -c foo.c
cc -c bar.c
cc -o myprog foo.o bar.o
(-c を指定すると、出力ファイル名は、拡張子が .o に置き換えられたソース ファイルになります。)
これにより、変更されたモジュールのみを再コンパイルすることもできます。これは、大きなプログラムの時間を大幅に節約できますが、非常に扱いにくくなる可能性もあります。(この部分は通常、 を使用して自動化されmake
ます。)
単一モジュールのプログラムの場合、最初に .o ファイルにコンパイルしてからリンクしても意味がないため、単一のコマンドで十分です。
cc -o foo foo.c
単一モジュール プログラムの場合、結果の実行可能プログラムを C ソース ファイルと同じように .c 接尾辞なしで呼び出すのが通例です。マルチモジュール プログラムの場合、メイン関数を含むファイルに基づいて出力の名前を付けるかどうかについて厳密な慣習はありません。
foo
が実行可能ファイルでがbar.c
ソース ファイルの場合、コマンドは次のとおりです。
gcc -o foo bar.c
以下を使用してコンパイルします。
cc -o <opfilename> <filename.c>
次を使用して実行します。
./<opfilename>