学习如何使用GNU Autotools打包我的程序

时间:2016-03-31 21:11:52

标签: c linux gnu autotools

我正在考虑首次使用GNU Autotools打包我的名为MyShell的C程序。我曾尝试过两次,但两次都失败了。我跟着this simple tutorial,但我的程序不同,导致问题的原因(我认为)是有1个.h文件和5个.c文件,而本教程只使用一个.c档案。

以下是我的程序的文件结构:

MyShell /

  • 自述
  • 的src /

的src /

  • CommandExecutor.c
  • CommandReader.c
  • ForkLauncher.c
  • MAIN.C
  • MyShell.h
  • MyShellLoop.c

关于如何编写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])

我应该将config.h替换为MyShell.h吗?

1 个答案:

答案 0 :(得分:2)

MyShell_SOURCES = Main.c

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

  

我应该将config.h替换为MyShell.h吗?

没有。 config.h应由configure文件中的config.h.in脚本生成<script>。 &#34;如何&#34;可以很漂亮complex