学习如何使用 GNU Autotools 打包我的程序时遇到问题

Trouble with learning how to use GNU Autotools to package my program

我第一次尝试使用 GNU Autotools 来打包我的名为 MyShell 的 C 程序。我试过两次,但都失败了。我遵循了 this simple tutorial,但是我的程序不同之处以及导致问题的原因(我认为)是有 1 个 .h 文件和 5 个 .c 文件,而本教程仅使用一个.c 文件。

这是我的程序的文件结构:

MyShell/

src/

任何有关如何编写 Makefile.am 文件、configure.ac 文件等的指导,或任何有关使用 Autotools 编写更复杂程序的更详细的教程,我们将不胜感激。

编辑

这些是我使用的文件:

MyShell/src/Makefile.am

bin_PROGRAMS = MyShell
MyShell_SOURCES = Main.c

MyShell/Makefile.am

SUBDIRS = src
dist_doc_DATA = README

MyShell/configure.ac

AC_INIT([MyShell], [1.0], [<my email address>])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
 Makefile
 src/Makefile
])
AC_OUTPUT

在我链接的教程中,configure.ac 文件有行

AC_CONFIG_HEADERS([config.h])

我应该用 MyShell.h 替换 config.h 吗?

MyShell_SOURCES = Main.c

这似乎是错误的。您需要列出所有源文件,including header files.

Should I have replaced config.h with MyShell.h?

没有。 config.h 应该由 configure 脚本从 config.h.in 文件生成。 "How"可以漂亮complex.