我还是觉得,从一个例子入手来学习比直接看一个详尽全面的功能说明文档要舒 服得多,但是这个文档又是必不可少的,在例子里面遇到不能自明的情况下就需 要查阅文档了。
下面我们就来看一个例子,用于创建《C++ Primer》里面的那个 word_search 的一个不完整的例子的工程。首先使用 acmkdir 来创建一个默认框架:
acmkdir word_search
回答一系列问题之后默认框架就创建好了。现在打开 configure.ac ,因为我们 要编译 C++ 文件,所以需要检查 C++ 编译器,在里面加入一行:
AC_PROG_CXX
然后把源文件拷贝到 src 目录里面去:
src +---- main.cpp | +---- filter.h | +---- types.h | `---- filter +---- word.cpp | `---- line.cpp
由于我们还需要在 filter 子目录下放 Makefile ,所以我们还需要修改 configure.ac ,添加那个子目录:
AC_CONFIG_FILES([ Makefile README doc/Makefile m4/Makefile src/Makefile src/filter/Makefile ])
然后在 src/Makefile.am 里面添加子目录 filter 并写入要创建的程序的信息 :
SUBDIRS = filter bin_PROGRAMS = word_search word_search_SOURCES = main.cpp types.h filter.h word_search_LDADD = $(top_builddir)/src/filter/libfilter.a
当然也需要在 src/filter 里面建立 Makefile.am :
noinst_LIBRARIES = libfilter.a libfilter_a_SOURCES = word.cpp line.cpp INCLUDES = -I$(top_srcdir)/src
现在可以在工程的根目录下面执行重新建立的脚本了:
没有出错的话,接下来可以 configure && make 了。
测试过程序正常之后就可以通过
会创建出 word_search-0.0.1.tar.gz 和 word_search-0.0.1.tar.bz2 两个文 件来,他们就可以作为可发布的打包文件了。当然,发布之前事先填好 README 、 ChangeLog 等文件的内容是最好的了。