2010-06-16 23 views
0

我有一個 「超級」 的makefile這將啓動兩個 「子」 令文件:命令隱式地在Makefiles中進行線程化?

libwebcam: @echo -e 「\ nInvoking libwebcam做。」 $(MAKE)-C $(TOPDIR)/ libwebcam

uvcdynctrl: @echo -e「\ nInvoking uvcdynctrl make」。 $(MAKE)-C $(TOPDIR)/ uvcdynctrl

uvcdynctrl使用libwebcam ...我注意到,這兩個版本是作爲單獨的線程啓動!因此,當uvcdynctrl開始構建時,有時lib不可用,並且出現錯誤。默認情況下,make不應該以線程形式啓動命令,因爲這隻能通過-j(作業數量)纔可用,並且根據make手冊,默認情況下沒有線程。我在Ubuntu上運行這個。

有人遇到同樣的問題嗎?

Apple92

回答

0

我不知道爲什麼你的命令正在被線程化,但線程化並不是問題,依賴是。如果正確設置依賴關係,則不會顯示此錯誤,如果不顯示,則可能顯示線程或不顯示線程。

在uvcdynctrl makefile中,使libwebcam成爲uvcdynctrl的先決條件,並放入製作libwebcam的規則。

0

他們應該,除非你指定一個-j參數,使在頂層調用不能同時建成。如果您這樣做,那麼您需要正確設置依賴關係,以注意uvcdynctrl取決於libwebcam。