为g ++编译器创建一个makefile

时间:2015-01-07 01:03:41

标签: c++ makefile g++

我有一些代码,每次我想编译我都要在linux shell中执行以下命令(只是一个例子):

$g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -o sim helloworld.cpp -lsystemc -lm

在此示例中,我的源文件为helloworld.cpp,我希望将其编译在源文件所在的同一文件夹中名为sim的文件夹中。

如何使用makemakefile自动执行此过程。还有make clean选项可以在调用时删除创建的文件夹吗?

2 个答案:

答案 0 :(得分:1)

%.o: %.cpp
     g++ $(YOUR_CXX_FLAGS_HERE) -c $< -o $@

$(YOUR_PACKAGE_NAME_HERE): $(YOUR_OBJECTS_HERE)
     g++ $(SOME_LDFLAGS_HERE) $^ -o $@

clean:
     rm $(YOUR_PACKAGE_NAME_HERE) $(YOUR_OBJECTS_HERE)

.PHONY: clean

有很好的教程,比如this一个。

答案 1 :(得分:1)

如果将cpp文件重命名为sim.cpp,这可能是最简单的Makefile

CPPFLAGS := -I. -I$(SYSTEMC_HOME)/include
LDFLAGS  := -L. -L$(SYSTEMC_HOME)/lib-linux64
LDLIBS   := -lsystemc -lm

sim:

.PHONY: clean
clean: ; $(RM) sim

隐式规则应该为您处理其他所有事情