没有规则要制定目标' mesh2D.h',需要' all-am'

时间:2017-05-17 09:12:09

标签: automake

我有以下项目树:

src
├── Converters
├── datamodel

内部datamodel/我有一个标题,我想要包含在Converters/内的源cpp文件中。

但是我收到以下错误:

No rule to make target 'mesh2D.h', needed by 'all-am'

这是Makefile.am内的我的自动Converters/

include $(top_srcdir)/adm_local/unix/make_common_start.am

AM_CPPFLAGS+=  \
-I$(top_srcdir)/src/datamodel

libSource_SOURCES=\
    source.cpp \
    source.h 

include_HEADERS=\
    mesh2D.h

SUBDIRS= 

include $(top_srcdir)/adm_local/unix/make_common_end.am

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我会移动

include_HEADERS = mesh2D.h
如果您使用递归make或

,则

行到datamodel/Makefile.am

include_HEADERS += %reldir%/mesh2D.h

datamodel/Makefile-files如果您对每个目录包含使用单个Makefile.am

include_HEADERS += datamodel/mesh2D.h

如果您使用单个Makefile.am而不包含每个目录。

请注意,使用include_HEADERS会将mesh2D.h文件安装到/usr/local/include。如果只需要mesh2D.h来编译您的程序,请使用noinst_HEADERS代替include_HEADERSmesh2D.h包含在分发tarball(make dist)中而不安装它(make install {1}})。