繁体   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