0

毎回異なるフラグを使用して、ソース ファイルを 2 回コンパイルしたいと考えています。それに加えて、コンパイル後に別のディレクトリに取得するこれらの実行可能ファイルが必要です(したがって、「make」で2つのフォルダーを作成し、すべてのフォルダーに実行可能ファイルを配置します)。

それらの主な問題は、オブジェクトファイルをメインにする方法がわからないことだと思います。それらを異なる名前で作成できると考えてください (.o ファイルのすべてのセットは、異なるフラグを持つ別のセットとは何らかの形で異なるため)、実行可能ファイルを配置したいディレクトリにそれらを配置できます。

それでも、エレガントな方法でそれを行う方法がわかりません:/

どんな助けでも大歓迎です:)

4

1 に答える 1

0

多くの詳細を提供していないので、2 つのソース ファイル と がfoo.cありbar.c、2 つのディレクトリでビルドしているred/と仮定しますblue/。これは、仕事をする大まかなmakefileです:

OBJS := foo.o bar.o
RED_OBJS := $(addprefix red/,$(OBJS))
BLUE_OBJS := $(addprefix blue/,$(OBJS))

$(RED_OBJS): red/%.o : %.c
    $(CC) -c $< -o $@

$(BLUE_OBJS): blue/%.o : %.c
    $(CC) -c $< -o $@

red/red_exec: $(RED_OBJS)
    $(CC) $< -o $@

blue/blue_exec: $(BLUE_OBJS)
    $(CC) $< -o $@
于 2013-04-02T18:14:53.077 に答える