我有一个需要头文件的C ++项目。我使用某些文件(.srv)中的python脚本构建了一些头文件。如果标头丢失或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"
这是逻辑,因为该文件尚不存在,但它不会调用规则来创建它。 我的规则有什么问题?
答案 0 :(得分:0)
规则本身是可以的,但也许你的问题是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)