recursive makefile没有规则来制作目标`all n#39;。停止

时间:2014-12-21 23:55:04

标签: c makefile automake

我是创建makefile的初学者,项目是关于包含src目录的根目录,我在顶层目录创建了两个makefile,另一个在src目录下是src目录的makefile: / p>

## Process this file with automake to produce Makefile.in

## Created by Netbeans

AM_CPPFLAGS = \
   -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \
   -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
   -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\"


bin_PROGRAMS = scratchautotool

program_INCLUDE_DIRS := /usr/bin/PR__bin

program_LIBRARY_DIRS := /usr/lib/PR__lib

CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

scratchautotool_SOURCES = \
     main.c \
     Task.c \
     SeedVP.c

depend :
    makedepend --$(CFLAGS) --$(scratchautotool_SOURCES)

根目录的makefile如下所示:

## Process this file with automake to produce Makefile.in
## Created by Netbeans

   SUBDIRS = src

   scratchautotooldocdir = ${prefix}/doc/scratchautotool
   scratchautotooldoc_DATA = \
          README\
          COPYING\
          AUTHORS\
          ChangeLog\
          INSTALL\
          NEWS


    INTLTOOL_FILES = intltool-extract.in \
      intltool-merge.in \
      intltool-update.in

    EXTRA_DIST = $(scratchautotooldoc_DATA) \
          $(INTLTOOL_FILES)

    DISTCLEANFILES = intltool-extract \
          intltool-merge \
          intltool-update \
         po/.intltool-merge-cache


   # Remove doc directory on uninstall
   uninstall-local:
   -rm -r $(scratchautotooldocdir)

但是当我从终端调用make时,它给了我以下错误:

   Making all in src
   make[2]: Entering directory `../src'
   make[2]: *** No rule to make target `all'.  Stop.
   make[2]: Leaving directory `../src'

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

错误很明显:它期望找到目标all,而不是。我假设您没有指定目标就调用make;默认值是(惊讶!)all

答案 1 :(得分:0)

我想与任何遇到相同问题的人分享我的问题的解决方案,我修改了makefile,如下所示:

all: scratchautotool
depend :
       makedepend $(CFLAGS) $(scratchautotool_SOURCES)

但这也给出了同样的错误,所以我搜索了一下,我发现makedepend不存在,所以我不得不使用下面的命令安装xutils-dev包(包括程序makedepend): / p>

  sudo apt-get install xutils-dev

但是此命令仅解决了上述问题!但makefile现在有一个新问题:)