Automake傻瓜式步骤

1.写测试代码

#include <iostream>

using namespace std;
int main ()
{
  cout << "Automake test!  \n";
  return 0;
}

2.autoscan

#autoscan
生成autoscan.log及configure.scan
貌似以下perl的错误是可以忽略的:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE [^\}]*}/ at /usr/bin/autoscan line 361.

3.修改configure.ac

  • 更名configure.scan
    mv configure.scan configure.ac
  • 修改configure.ac
    修改AC_INIT,如AC_INIT([test], [1.0], [test@test.com])
    增加AM_INIT_AUTOMAKE([test],[1.0])
    修改AC_OUTPUT([Makefile])

4.运行 aclocal

#aclocal
生成autom4te.cache及aclocal.m4

5.运行 autoconf

#autoconf
生成configure

6.运行 autoheader

#autoheader
生成config.h.in

7.创建 Makefile.am

automake的输入脚本为Makefile.am,可以在该文件中定制编译的输出输出files, 传给下一步的automake

    AUTOMAKE_OPTIONS=foreign
    bin_PROGRAMS=test
    test_SOURCES=test.cpp
  • AUTOMAKE_OPTIONS
    为automake的选项,定义了代码的严格级别,见(http://www.gnu.org/software/automake/):

    • foreign
      只检查必须文件
    • gnu
      默认选项,需符合GNU规范
    • gnits
      兼容Gnits规范
  • bin_PROGRAMS
    定义了即将生成的可执行文件名

  • test_SOURCES
    定义了“test”这个程序所需要的原始文件, 可跟一个或多个文件,多个文件必须都列出来,用空格隔开

8.运行 automake

#automake --add-missing
--add-missing选项可以让automake自动添加有一些必需的模块, 这里会生成Makefile.in及其它一些缺失文件,当提示"required directory ./build-aux does not exist",需要手动创建该目录(mkdir build-aux); 提示"error: required file 'build-aux/ltmain.sh' not found"时,可通过libtoolize拷贝,即执行:
#libtoolize --automake --copy --debug --force

9.运行./configure

#./configure
生成Makefile文件

10.运行 make

#make

11.测试程序 ./test

#./test

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容