你如何自动化make文件?

你如何使一个makefile通过一个.cpp文件列表然后单独编译,就像这样静态?
test: test.o
        g++ -o test test.o
test.o: test.cc test.hh
        g++ -c test.cc
但动态地从这?
SOURCES = main.cpp someClass.cpp otherFile.cpp
    
已邀请:
OBJECTS = main.o someClass.o otherFile.o

all: $OBJECTS 
%.o: %.cc
   g++ $< -c -o $@
如果您想为每个模块强制执行类似命名的标题,那么您可以:
OBJECTS = main.o someClass.o otherFile.o

all: $OBJECTS 
%.o: %.cc %.hh
   g++ $< -c -o $@
    
automake让这更容易:
program_SOURCES = main.cpp someClass.cpp otherFile.cpp
将从列出的源文件中构建
program
。唯一的问题是它与autoconf一起使用,这可能需要一些时间才能正确设置。 (至少,我从来没有第一次做对。)     
你也可以尝试:
SOURCES=$(shell ls *.cpp)
OBJECTS=$(SOURCES:%.cpp=%.o)

%.o: %.cpp
    g++ -c %< -o $@
这样您就不必指定任何cpp名称。您添加的任何新源文件都将自动被选中。但是,这只适用于Unix shell。     

要回复问题请先登录注册