1.背景
昨天在网上看到别人用aauto写本地小程序写的很爽,我觉得如果java的jre能小一点,凭借java庞大的第三方类库写小工具也还算不错的。本人就经常用eclipse+一些commons包写些小工具软件。不过可惜的是只能自己用,对于没装java环境的人来说就麻烦了。所以就去网上找到了一个轻量级java虚拟机avian。但是在编译和安装过程中遇到了很多困难,特此记录。
2.开始
废话少说,先说重点。其实在这个软件的gihub首页以及清晰的讲述了安装教程,无奈这是英文的,而且主要是自己没有过编译开源程序的经验,也没有玩过什么msys,cygwin的linux编译环境。这次也算是当作一次练习,毕竟以前我只要遇到需要自己编译的开源项目就敬而远之。
其实安装的难点有两个,第一个在http://kingj.iteye.com/blog/1614892这个博客中已经一语道破了。。win32/64文件夹要和avian的解压文件夹并列。。我一直以为要合并着来着,官网也没有特殊说明,本人也没有玩过linux命令行,所以。。不说多了说多了都是泪。。
第二个就是cygwin的安装。这个的安装注定是要折腾的,虽然网上到处都是教程,但是问题是这些教程有很多细节都没有明说啊,也饶了不少远路。除了一般教程都说的要按照的
binutils、gcc、gcc-mingw、gdb之外,还要安装make,zlib(第一次安装我照着教程装忘记装avian需要的make了,吐血。。)。这都是32位的,如果你要安装64位的则还有make, gcc-mingw-g++, mingw64-i686-gcc-g++, mingw64-x86_64-gcc-g++, mingw64-x86_64-zlib(这几个其实avian官网有介绍,但是没有介绍zlib。。因为是写在中间,所以我也是后来才看到的,这排版真心不科学。。)反正我电脑是64位的,所以我这几个都安装了,避免出现任何问题。。
环境装好了,然后需要的就是照着官网的教程敲命令 了
这里以32位为例。因为在64位下可以编译32位的,但是编译成64位的就不能在32位运行了。
$ git clone https://github.com/ReadyTalk/win32.git ../win32 #官网是下载win64,我们全部改成win32。不过那个官网的git地址有问题,自己去github下载zip复制也行 $ export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.7.0_45" #引入JAVA_HOME,相当于windows下cmd的setpath吧 $ make platform=windows arch=i386 #这里需要注意,没有指定编译环境默认就是本机环境,如果电脑是64位的,那么之前你下载的win32头文件会冲突,所以必须指定为i386,如果你是想编译64位的,则之前的git clone就应该是64位的 $ build/windows-i386/avian -cp build/windows-i386/test Hello #这个测试程序运行成功就代表编译成功了。
然后将虚拟机嵌入打包,github上有详细的教程。等我以后再整理。。