簡體   English   中英

Makefile:忽略的模式規則

[英]Makefile: ignored pattern rule

我有一個需要頭文件的C ++項目。我用python腳本從一些文件(.srv)中構建了一些頭文件。 如果標頭丟失或srv文件已更改,我希望Makefile運行我的腳本。 我將此行添加到我的makefile中:

    include/services/%.h : include/srv/%.srv
        python headersFromSRV.py $<

當我嘗試構建項目時,出現錯誤消息:

 fatal error: 'include/services/robot_device_list.h' file not found
 #include "include/services/robot_device_list.h"

這是邏輯,因為該文件尚不存在,但是它沒有調用規則來創建它。 我的規則有什么問題?

規則本身是可以的,但是也許您的問題是makefile不知道這是必需的。 我猜錯誤消息來自您的C / C ++編譯器,后者正在構建其他目標。 您可能需要將robot_device_list.h添加為對該目標的依賴項,因此makefile知道他需要首先構建該文件。 例如

foo.exe: foo.o
   (your link statement)

foo.o: foo.c include/services/robot_device_list.h
   (your compile statement)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM