随笔 - 70, 文章 - 0, 评论 - 9, 引用 - 0
数据加载中……

MSYS下的automake搭建与使用

MSYS模仿了Linux下的编译环境,但与Windows上IDE比起来,不足的是需要自己写Makefile。因此也可以搭建类似Linux的automake环境来生成Makefile。


折腾了2个多小时,才把环境搞定。步骤如下:

1  下载与安装
    下载如下工具或组件:autoconf,automake,m4,libtool,perl,crypt。
    下载地址:http://sourceforge.net/projects/mingw/files/MSYS/
    其中autoconf,automake是主要使用工具;m4,libtool是必要工具;perl是支撑工具;crypt是支撑库。libtool和crypt以库的形式下载。
    下载好的文件如下:autoconf-2.67-1-msys-1.0.15-bin.tar.lzma,automake-1.11.1-1-msys-1.0.13-bin.tar.lzma,m4-1.4.14-1-msys-1.0.13-bin.tar.lzma,libltdl-2.4-1-msys-1.0.15-dll-7.tar.lzma,perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma,libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma。解压后拷贝到C:\msys\1.0下,覆盖即可。


2  automake使用
    1)运行autoscan命令,产生configure.scan文件;
    2)将configure.scan 文件重命名为configure.in,并修改configure.in文件;
    3)运行aclocal命令,产生aclocal.m4文件;
    4)运行autoconf命令,产生configure文件;
    5)新建Makefile.am文件,新建NEWS、 README、 ChangeLog 、AUTHORS文件;
    6)修改Makefile.am,并运行automake -a命令;(automake --add-missing)
    7)运行./confiugre脚本。
    8)至此,Makefile已生产,然后执行make编译即可。

    其中configure.in的修改,Makefile.am的修改。可参考其他网上资料。

参考:
    http://www.ibm.com/developerworks/cn/linux/l-makefile/  (复杂例子)
    http://tech.sina.com.cn/s/2004-10-19/1115443045.shtml  (简单例子)


FAQ
1  问题:/bin/install: Permission denied
    解决方法:从http://sourceforge.net/tracker/index.php?func=detail&aid=1711379&group_id=2435&atid=102435 中的"Attached files"中下载install.exe.manifest,放到MSYS的bin下。
        再次出现该错误。继续:在控制面板 -- 用户账户和家庭安全 -- 用户账户中,打开更改用户账户控制设置,将级别调至最低。需要重启。至此,还未测试是否有效。
    参考:http://lists-archives.org/mingw-msys/00059-problem-with-chmod.html 

2  问题:执行automake -a后出现:required file './ltmain.sh' not found
    解决方法:在执行aclocal和automake -a前执行libtoolize命令,来产生ltmain.sh到当前目录。
    参考:http://blog.chinaunix.net/u2/84449/showart_2087602.html

3  执行automake -a,出现:Makefile.am:29: `%'-style pattern rules are a GNU make extension
    解决:执行automake -Wno-portability
    参考:http://bugs.mysql.com/bug.php?id=30708

posted on 2011-01-18 10:17 seahouse 阅读(6444) 评论(0)  编辑 收藏 引用 所属分类: 编译


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理