gpt4 book ai didi

linux - Makefile 自动依赖生成

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:11 26 4
gpt4 key购买 nike

我正在尝试查看自动生成的依赖项,makefile 如下:

  OBJS := main.o 

run : $(OBJS)
$(CC) $(OBJS) -o run -lstdc++

-include $(OBJS:.o=.d)

%.o : %.cpp
$(CC) -c $(CFLAGS) $*.cpp -o $*.o

%.d : %.cpp
@set -e; rm -f $@; \
$(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
echo "creating dependency file."; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$

# remove compilation products
clean :
rm -f run *.o *.d*

但是 makefile 在 main.d 中生成了一个巨大的依赖列表,但实际需要的是前几行。那么我哪里出错了?

最佳答案

试试这个:

  OBJS := main.o 

run : $(OBJS)
$(CC) $(OBJS) -o run -lstdc++

-include $(OBJS:.o=.d)

%.o : %.cpp
$(CC) -c -MMD -MP $(CFLAGS) $*.cpp -o $*.o

# remove compilation products
clean :
rm -f run *.o *.d*

关于linux - Makefile 自动依赖生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com