Makefile,循环依赖性下降,需要澄清

时间:2012-08-08 01:58:32

标签: c++ makefile circular-dependency

的makefile中
  1 SHELL=/bin/zsh
  2 CC=g++
  3 
  4 TARGET  = target/jj
  5 SOURCES = $(shell echo src/*.cpp)
  6 HEADERS = $(shell echo include/*.h)
  7 OBJECTS = $(SOURCES:.c=.o)
  8 FLAGS   = -Wall -c
  9 
 10 all: $(TARGET)
 11 
 12 # Create final executable from .o
 13 $(TARGET): $(OBJECTS)
 14   $(CC) $(OBJECTS)
 15 
 16 # Create .o from .cpp
 17 $(OBJECTS): $(SOURCES)              # <------------------------------
 18   $(CC) $(FLAGS) -c $(SOURCES)
 19 
 20 # Remove objects  
 21 clean:
 22   rm -rf $(OBJECTS)

所以..在第17行,$(OBJECTS)创建确实取决于.o创建中使用的$(SOURCES)。为什么这一行会产生循环依赖? (改为将行改为$(TARGET):,工作正常)

1 个答案:

答案 0 :(得分:2)

问题出在第7行 - 您的源文件是.cpp个文件,但您使用的是替换.c -> .o。尝试将其更改为.cpp

相关问题