C++ 为g++;编译程序
我有一些代码,每当我想编译时,我都必须在linux shell中执行以下命令(只是一个示例): 在本例中,我的源文件是C++ 为g++;编译程序,c++,makefile,g++,C++,Makefile,G++,我有一些代码,每当我想编译时,我都必须在linux shell中执行以下命令(只是一个示例): 在本例中,我的源文件是helloworld.cpp,我希望将其编译到名为sim的文件夹中,该文件夹与源文件所在的文件夹相同 如何使用make或makefile自动化此过程。还有makeclean选项,可以在调用时删除创建的文件夹?轻松 %.o: %.cpp g++ $(YOUR_CXX_FLAGS_HERE) -c $< -o $@ $(YOUR_PACKAGE_NAME_HERE)
helloworld.cpp
,我希望将其编译到名为sim
的文件夹中,该文件夹与源文件所在的文件夹相同
如何使用make
或makefile
自动化此过程。还有makeclean
选项,可以在调用时删除创建的文件夹?轻松
%.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
%.o:%.cpp
g++$(您的\u CXX\u标志\u在此)-c$<-o$@
$(您的\u包\u名称\u此处):$(您的\u对象\u此处)
g++$(这里有一些标志)$^-o$@
清洁:
rm$(此处为您的包名)$(此处为您的对象)
.假冒:干净
有很多很好的教程,比如一个。如果您将cpp文件重命名为
sim.cpp
,这可能是最简单的生成文件
CPPFLAGS := -I. -I$(SYSTEMC_HOME)/include
LDFLAGS := -L. -L$(SYSTEMC_HOME)/lib-linux64
LDLIBS := -lsystemc -lm
sim:
.PHONY: clean
clean: ; $(RM) sim
隐式规则应该为您处理所有其他问题您是否尝试过生成文件?如果是这样的话,你可以发布itI,它将研究像CMake这样的自动构建系统,而不是使用手工制作的makefiles。它往往会变得杂乱无章,尤其是当您想要更改目标环境时。
CPPFLAGS := -I. -I$(SYSTEMC_HOME)/include
LDFLAGS := -L. -L$(SYSTEMC_HOME)/lib-linux64
LDLIBS := -lsystemc -lm
sim:
.PHONY: clean
clean: ; $(RM) sim