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