所以我想要编译一个有点大的C ++项目。之前我使用过Code :: Blocks,但现在我想要更多地控制幕后发生的事情。然而制作makefile对我来说太复杂了!!
我想要的是:我可以创建一个充当makefile的python脚本,如果是这样的话,怎么样?!
在makefile中,我想搜索某些目录上的所有* .cpp文件,然后调用g ++来编译/链接它们。
编辑:对不起,我忘了提到我也有标题,并希望自定义g ++参数答案 0 :(得分:2)
尝试scons
看起来像你需要的
答案 1 :(得分:1)
试试:
#default target
all: prog
#auto dependency
include $(OBJ_FILES:.o=.d)
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $*.cpp -o $*.o
$(CXX) -MM $(CXXFLAGS) $*.cpp > $*.d
@mv -f $*.d $*.d.tmp
@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
@rm -f $*.d.
#set ld flags eg for libs
LDFLAGS = -lsdl2 -lglew -lgl
#set cxxflags for all debug options and others
CXXFLAGS= -g -Wall
#collect all cpp files:
CPP_FILES := $(shell find . -type f -name '*.cpp')
#get the object file names for them
OBJ_FILES := $(CPP_FILES:.cpp=.o)
#and link all togeter
prog: $(OBJ_FILES)
g++ $(CXXFLAGS) $(LDFLAGS) -o $@ $^