【发布时间】:2013-12-07 01:25:05
【问题描述】:
我有一个文件 cmdscan.c,它只包含一个函数和一个结构。我的主程序 hsh.c 使用来自 cmdscan.c 的函数和结构。我完全按照教授 pdf 上的说明进行操作,但它不起作用。即使我编辑了一些东西,保存并运行它也会说没有什么可做的。当我使用 make distcheck 时,我得到一个错误,说它找不到 hsh.c。
这是我的目录包含的内容:
Makefile.am:
bin_PROGRAMS = hsh
hsh_SOURCES = hsh.c cmdscan.c
configure.in:
AC_INIT(hsh.c)
AM_INIT_AUTOMAKE(hsh,1.0)
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT(Makefile)
我确保使用标签。 然后我运行命令:
aclocal
autoconf
touch README AUTHORS NEWS ChangeLog
automake -a
configure
make
注意:当我运行“配置”时,它说找不到命令。但我可以运行 ./configure,这就是我所做的。
当我执行最后一个命令“make”时,我得到:
make: Nothing to be done for `all'.
即使我编辑并保存它。所以当我跑步时
make distcheck
我明白了:
configure: error: cannot find sources (hsh.c) in ..
make: *** [distcheck] Error 1
如果我跑:
gcc cmdscan.c hsh.c -o hsh
它有效。
【问题讨论】:
-
您正在阅读哪些文档推荐使用名称
configure.in?它非常旧了。 -
我只是按照他在 pdf 中给出的作业说明进行操作。我给他发了电子邮件,但他没有回复。
-
将包名和版本放在
AM_INIT_AUTOMAKE而不是AC_INIT更加过时了! -
说真的,您的讲师文档已经过时了大约 10 年。
-
@WilliamPursell,IIRC 它更像是过时了 12 年以上。
标签: c makefile autoconf automake linkage