使用python编译/链接C ++项目

时间:2015-11-16 12:58:13

标签: c++

所以我想要编译一个有点大的C ++项目。之前我使用过Code :: Blocks,但现在我想要更多地控制幕后发生的事情。然而制作makefile对我来说太复杂了!!

我想要的是:我可以创建一个充当makefile的python脚本,如果是这样的话,怎么样?!

在makefile中,我想搜索某些目录上的所有* .cpp文件,然后调用g ++来编译/链接它们。

编辑:对不起,我忘了提到我也有标题,并希望自定义g ++参数

2 个答案:

答案 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 $@ $^