如何在Makefile中为多个源文件设置不同的标志?

时间:2015-06-25 19:26:19

标签: c++ makefile cmake flags compiler-flags

我想编译一个由几个.cpp文件组成的代码。我想用不同的标志编译每个文件(例如-fopenmp用于并行化)。第一个目标是将输出文件链接到通用可执行文件中。

例如

exec: $(OBJS)
    $(CC) -I$(INCLDIR) -I$(INCLDIR) $(CFLAGS) -o exec $(OBJS) -L$(LIBPATH) $(LDFLAGS)

让我们假设在对象中包含了一些像这样的目标:

obj1.o: obj1.cpp $(INCLFILE)
    $(CC) $(CFLAGS1) -c obj1.cpp -o obj1.o

obj2.o: obj2.cpp $(INCLFILE)
    $(CC) $(CFLAGS2) -c obj2.cpp -o obj2.o  

CFLAGS1或CFLAGS2为-fopenmp。即使我将CFLAGS1或CFLAGS2设置为等于-fopenmp但未将CFLAGS设置为等于-fopenmp,也会出现关于找不到相应文件的错误。当我将CFLAGS设置为等于-fopenmp时,问题就会消失。那么,在主可执行目标中,是否应该包含任何函数使用的所有标志?然后当然用于个别对象?

0 个答案:

没有答案