提问者:小点点

没有规则使“distdir-am"需要的目标为”bootstrap"。停止


我在使用automake“make dists”时遇到了以下问题。下面是编译器报告的错误的快照。我使用的是Debian10.5,默认编译器版本为8.0.3;autoconf 2.69;automake 1.16.1,libtool 2.4.6

######## Problem ########

aperri@debian:~/XerlangCPL2$ make dist
make  dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/aperri/XerlangCPL2'
make  distdir-am
make[2]: Entering directory '/home/aperri/XerlangCPL2'
make[2]: *** No rule to make target 'bootstrap', needed by 'distdir-am'.  Stop.
make[2]: Leaving directory '/home/aperri/XerlangCPL2'
make[1]: *** [Makefile:633: distdir] Error 2
make[1]: Leaving directory '/home/aperri/XerlangCPL2'
make: *** [Makefile:710: dist] Error 2 

我把我的configure.ac和makefile.am包含在这条消息中,希望有一个解决这个问题的方法

######## configure.ac ########

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT([XerlangCPL], [1.0], [aperri1001@gmail.com])
AC_CONFIG_SRCDIR([src/xmlPROC.cpp])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])

# Enable "automake" to simplify creating Makefiles
AM_INIT_AUTOMAKE([1.16.1 subdir-objects -Wall -Werror])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])


# Checks for programs.
AC_PROG_CC
AC_PROG_CXXCPP
AC_PROG_CXX
# Used in conjuction with {TARGET}_CPPFLAGS = -DDEBUG in Makefile.am
AM_PROG_CC_C_O

# Checks for libraries.
AX_BOOST_BASE([1.67], [], AC_MSG_ERROR([Could not find a useful version of boost]))
AX_BOOST_FILESYSTEM
AX_BOOST_SYSTEM
AX_BOOST_PROGRAM_OPTIONS
AX_BOOST_REGEX
# AX_BOOST_DATE_TIME
# AX_BOOST_THREAD

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions
PKG_CHECK_MODULES(libxml, libxml++-2.6 >= 2.10.0 )


AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN";
   then AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
fi
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
AC_CONFIG_FILES([Makefile doc/Doxyfile])

# AM_CONDITIONAL([DEBUG], [test x$debug = xtrue])
# AC_ARG_WITH(debug, [  --with-debug  add the debugging module], [AC_DEFINE(WITH_DEBUG,1,0)
# AC_SUBST(WITH_DEBUG,1)
# CXXFLAGS="-O0 -ggdb"])


AC_OUTPUT

echo "
  XErlang Compiler ($PACKAGE_NAME) version $PACKAGE_VERSION
  Prefix.........: $prefix
  Debug Build....: $debug
  C++ Compiler...: $CXX $CXXFLAGS $CPPFLAGS
  Linker.........: $LD $LDFLAGS $LIBS
"
######## makefile.am ########

ACLOCAL_AMFLAGS = -I m4 --install

bin_PROGRAMS = xerlangCPL
xerlangCPL_SOURCES = \
    src/xmlPROC.cpp \
    src/xml_structs.h \
    src/debug.h \
    src/conxsTracker.cpp \
    src/conxs_tracker.h \
    src/xmlConxsParser.cpp \
    src/oven_control


xerlangCPL_LDFLAGS = -DDEBUG \
                     $(libxml_LIBS) \
                     $(BOOST_LDFLAGS) \
                     $(BOOST_SYSTEM_LDFLAGS) \
                     $(BOOST_FILESYSTEM_LDFLAGS) \
                     $(BOOST_PROGRAM_OPTIONS_LDFLAGS)

xerlangCPL_CPPFLAGS = $(libxml_CFLAGS) \
                      $(BOOST_CPPFLAGS)


xerlangCPL_LIBS = $(BOOST_SYSTEM_LIBS) \
                  $(BOOST_FILESYSTEM_LIBS) \
                  $(BOOST_PROGRAM_OPTIONS_LIBS)

xerlangCPL_CXXFLAGS = -lboost_filesystem -ldl -lboost_system

# start of Doxygen section
if HAVE_DOXYGEN

doxyfile.stamp:
    $(DOXYGEN) $(top_srcdir)/doc/Doxyfile
    echo Timestamp > $@


CLEANFILES = $(top_srcdir)/doxyfile.stamp

# all-local: doxyfile.stamp
all-local: doxyfile.stamp
# clean-local:
#     rm -rf $(top_srcdir)/
endif

EXTRA_DIST = bootstrap m4/NOTES 

这一问题可能与是否包括升压模块有关,也可能与缺少升压模块有关。


共1个答案

匿名用户

问题是列出了一个名为的神秘文件。

没有提供生成此文件的说明。

因此,这个文件应该已经存在于构建目录中,而它并没有。

这就是失败的原因。

丢失文件的原因是您必须自己找出的,这里唯一可以说明的是,它的缺失是构建失败的原因。

你当然可以

touch bootstrap

并在构建目录中创建一个空文件,这样就足够了。但是您应该在您的项目中调查这个文件是什么,它应该从哪里来,并相应地进行修复。