59

C プログラムをコンパイルしているとき、出力は a.out に格納されます。コンパイルされた出力を別のファイルにリダイレクトするにはどうすればよいですか?

4

9 に答える 9

50

ほとんどの C コンパイラには-o、次のようなオプションが用意されています。

gcc -o gentext gentext.c
cc  -o mainprog -Llib -lmymath firstbit.c secondbit.o
xlc -o coredump coredump.c
于 2009-03-17T11:27:41.877 に答える
24

-ofilename will make filename instead of a.out.

于 2009-03-17T11:20:21.693 に答える
13

マニュアルによると:

-o <file>  Place the output into <file>
于 2009-03-17T11:22:11.953 に答える
9

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 接尾辞なしで呼び出すのが通例です。マルチモジュール プログラムの場合、メイン関数を含むファイルに基づいて出力の名前を付けるかどうかについて厳密な慣習はありません。

于 2009-03-17T11:31:00.903 に答える
4

fooが実行可能ファイルでがbar.cソース ファイルの場合、コマンドは次のとおりです。

gcc -o foo bar.c
于 2018-12-12T10:09:39.817 に答える
1

以下を使用してコンパイルします。

cc -o <opfilename> <filename.c>

次を使用して実行します。

./<opfilename>
于 2015-08-09T08:20:31.013 に答える