0

g++ と mingw をそれぞれ使用して、プログラムを Linux と Windows の両方にコンパイルしたいと考えています。コンパイル間の唯一の違いは、使用するコンパイラと出力ファイル名です。

1 つのmakeコマンドで両方の出力ファイルを生成する必要があります。メイクファイルの重複をできるだけ少なくしてこれを達成する最善の方法は何ですか?

4

1 に答える 1

2

これはどう:

linux-name: CC:=g++
windows-name: CC:=mingw

linux-name windows-name:
    $(CC) whatever -o $@

編集:

上に書いたのは、makefile の新しい部分だけです。メイクファイルの残りの部分は暗示されていると思いました。より明確にするには:

all: linux-name windows-name

linux-name: CC:=g++
windows-name: CC:=mingw

linux-name windows-name: foo.o bar.o baz.o SomethingElse
    $(CC) $(CCFLAGS) whatever $^ -o $@

%.o: %.cc
    $(CC) $(CFLAGS) -I$(INC_DIR) whatever -c $< -o $@

SomethingElse:
    build somehow
于 2012-10-29T01:45:40.267 に答える