我有以下项目树:
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
感谢您的帮助!
答案 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_HEADERS
将mesh2D.h
包含在分发tarball(make dist
)中而不安装它(make install
{1}})。