我是创建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'
任何帮助将不胜感激。
答案 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现在有一个新问题:)