为 g++ 编译器创建一个 makefile
Creating a makefile for g++ compiler
我有一些代码,每次我想编译时,我都必须在 linux shell 中执行以下命令(只是一个例子):
$g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -o sim helloworld.cpp -lsystemc -lm
在这个例子中,我的源文件是 helloworld.cpp
,我希望它在源文件所在的同一文件夹中名为 sim
的文件夹中编译。
如何使用 make
或 makefile
自动执行此过程。如果调用,还有 make clean
选项删除创建的文件夹?
简单
%.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 一个。
如果将 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
隐式规则应该为您处理所有其他事情
我有一些代码,每次我想编译时,我都必须在 linux shell 中执行以下命令(只是一个例子):
$g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -o sim helloworld.cpp -lsystemc -lm
在这个例子中,我的源文件是 helloworld.cpp
,我希望它在源文件所在的同一文件夹中名为 sim
的文件夹中编译。
如何使用 make
或 makefile
自动执行此过程。如果调用,还有 make clean
选项删除创建的文件夹?
简单
%.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 一个。
如果将 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
隐式规则应该为您处理所有其他事情