首页 > 解决方案 > 使用 autotools 时原始 .h 文件会发生什么情况?

问题描述

我正在用 C 创建一个 shell。我创建的 .tar.gz 文件工作得很好。但是,当我解压缩此文件时,我用于生成所述文件的原始头文件已更改为包含 autotools 使用的代码。有没有办法保留原始 .h 文件?

作为参考,这是我的 configure.ac:

AC_INIT([program_name], 1.0)  
AM_INIT_AUTOMAKE  
AC_PROG_CC  
AC_CONFIG_HEADERS([shell.h])  
AC_CONFIG_FILES(Makefile)  
AC_OUTPUT

Makefile.am 程序是:

bin_PROGRAMS = shell  
shell_SOURCES = main.c functions.c

我希望当我 cat shell.h 时,我会看到我制作的原始 #include 和 #define 。然而,它只有典型的 autotools #defines 关于包和版本号。

对此的任何帮助,以及解释这里实际发生的事情将不胜感激,所以我不再这样做了。

标签: cheader-filesautotools

解决方案


AC_CONFIG_HEADERS(文档) 输出一个 Autoconf 生成的头文件,其中包含有关包和用于编译它的环境的信息。

通常会调用此文件,config.h但您似乎已经调用它shell.h覆盖shell.h了您手动创建的另一个文件,我猜?

如果是这种情况,解决方案是在AC_CONFIG_HEADERS.


推荐阅读