我有一个“超级”makefile,它启动两个“sub”make文件:
libwebcam: @echo -e“\ n调用libwebcam make。” $(MAKE)-C $(TOPDIR)/ libwebcam
uvcdynctrl: @echo -e“\ n调用uvcdynctrl make。” $(MAKE)-C $(TOPDIR)/ uvcdynctrl
uvcdynctrl使用libwebcam ...我注意到这两个版本是由make作为单独的线程启动的!因此,有时在uvcdynctrl开始构建时lib不可用,并且我得到错误。默认情况下,make不应该以线程的形式启动命令,因为这只能通过-j(作业数)来使用,并且根据make手册,默认情况下没有线程。我在Ubuntu上运行它。
有人面临同样的问题吗?
Apple92
答案 0 :(得分:0)
除非在顶层调用中指定要生成的-j参数,否则不应同时构建它们。如果您这样做,那么您需要正确设置依赖关系以注意uvcdynctrl依赖于libwebcam。
答案 1 :(得分:0)
我不知道为什么你的命令被线程化,但线程不是问题,依赖是。如果您正确设置了依赖项,则不会出现此错误,如果不正确,则可能会显示,线程或没有线程。
在uvcdynctrl makefile中,使libwebcam成为uvcdynctrl的先决条件,并加入制作libwebcam的规则。