0

我想分别使用 g++ 和 mingw 将我的程序编译到 linux 和 windows。编译之间的唯一区别是使用的编译器和输出文件名。

单个make命令应生成两个输出文件。在生成文件中尽可能少地重复实现这一目标的最佳方法是什么?

4

1 回答 1

2

这个怎么样:

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

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

编辑:

我上面写的只是makefile的部分;我假设 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 回答