0

複数のディレクトリで簡単に変更およびコンパイルできる戦略を使用して、ゲームをプレイするプログラムを作成しようとしています。ゲームのソース ファイルのほとんどは不変です (つまり、戦略が変更されても同じままです)。ソース ファイルがa.c, b.c, c.c, d.c, e.cであるとします。ここで、a.c~d.cは不変でe.cあり、さまざまな戦略間で異なる唯一のファイルです。さらに、a.ce.c呼び出します。そのため、未定義関数エラーを呼び出さずに完全に独立してコンパイルすることはできません。

(cc/gcc/etc.)a.cd.c単一のファイルにeverything.oコンパイルする方法はありe.cますか?

    > <command here> everything.o a.c b.c c.c d.c
    > cc -g -o e.o e.c
    > cc -g -o foo.o everything.o e.o

4つすべて(私の場合は〜20)のファイルを各ディレクトリにコピーすることなく、さまざまな戦略を実行するプログラムを作成できるように、すべてを別のディレクトリにコピーできますか?

4

1 に答える 1

5

各オブジェクトを個別にコンパイルして、次のように追加できますarchive

gcc -c foo.c bar.c baz.c
ar cr shared.a foo.o bar.o baz.o

そして最後に、追加のソース ファイルでコンパイルします。

gcc extra.c shared.a -o myprogram

詳しくは、GNU アーカイバーを使用したライブラリーの作成を参照してください。

于 2013-11-06T20:10:18.757 に答える