2

Eclipse で C プロジェクトを使用して、クライアントとサーバーの 2 つの exe を生成しようとしています。どちらも異なるexeであるため、両方に主要な機能があります。どちらも共通の confutils.c ファイルを使用します。主な問題の複数の定義を解決するにはどうすればよいですか。1 つのプロジェクトで 2 つのメインを使用できないことはわかっています。私のmakefileは以下のようになります。

.c.o:
    gcc -g -c $?

# compile client and server
all: confclient confserver

# compile client only
confclient: confclient.o confutils.o
    gcc -g -o confclient confclient.o  confutils.o

# compile server program
confserver: confserver.o confutils.o
    gcc -g -o confserver confserver.o  confutils.o

Eclipseファイルをこれに置き換えました。日食がそれを正しく読んだかどうかはわかりません。このプロジェクトは非常に単純なプログラムなので、2 つに分割するのは好きではありません。これらのファイルを unix で問題なく実行できます。Eclipse に、ビルド構成をセットアップできるオプションがあるかどうかを調べようとしています。

4

2 に答える 2

2

複数のビルド構成を定義することができます- それぞれがビルドされるファイルの異なるセットを持ちます。

最初にプロジェクトのプロパティを開き、次の場所に移動しManage Configurationsます。

ここに画像の説明を入力

新しいビルド構成を作成します。

ここに画像の説明を入力

そしてそれをアクティブに設定します:

ここに画像の説明を入力

最後に、ファイルを除外するフィルターを定義して、使用するソース ファイルmain()のみを使用してビルドするようにします。

ここに画像の説明を入力

以上です:

ここに画像の説明を入力

> > >からターゲット ビルド構成を選択できるようになりました。MenuProjectBuild ConfigurationsSet Active

于 2016-11-14T08:08:54.240 に答える
0

これを避けるために、複数の「ビルド構成」を設定できると思います。メニューバーの「プロジェクト」の下で、アクティブなビルド構成を選択できます。

さまざまな構成でファイルを除外する方法があります。プロジェクトのプロパティの下で、「C/C++ General」、「Paths and Symbols」に移動し、ここで「Source Location」を選択します。一番上に、ビルド構成を選択してから、さまざまなビルド構成に対してさまざまなソースの場所を定義できるようになりました。ここで、ソース コード用のフォルダーを追加します。ここに、含めることを選択したフォルダーに対して、特定のファイルを無視するフィルターを配置できるというトリックがあります。

あなたの場合、2 つのビルド構成を作成します。1 つは confclient 用で、もう 1 つはソースの場所から confserver.c を除外します。逆もまた同様です。

プロジェクトを 2 回ビルドする必要がありますが、utilspart は変更されないため、再コンパイルされません。これは、2 つのプロジェクトを作成するよりも利点です。また、サーバー側とクライアント側のコードが接続されると思うので、すべてのコードを同じプロジェクトに入れるといいかもしれません。

于 2014-04-23T15:53:07.230 に答える