我想分别使用 g++ 和 mingw 将我的程序编译到 linux 和 windows。编译之间的唯一区别是使用的编译器和输出文件名。
单个make
命令应生成两个输出文件。在生成文件中尽可能少地重复实现这一目标的最佳方法是什么?
这个怎么样:
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