Alchemy 是adobe 推出的把C++代码编译成as3 字节码的开源项目,这对于开源爱好者和RIA开发者绝对是一个好消息,以后c++ 的开源工程都可以编译成as库来供RIA开发者使用了。不过现在Alchemy 发布的还是release beta 版,看网上评论对c++ 的语法好像有一些限制,具体还没有研究,目前只是才安装好Alchemy 。以后研究好了再和大家分享。3sNews_最具影响力地理空间信息门户M B6c-\-nRx
3sNews_最具影响力地理空间信息门户XI6pq#f&AAlchemy 在windows下的安装是一件很麻烦的事情,需要在cygwin下安装。
#TM MrN;pgIB C!U0 3sNews_最具影响力地理空间信息门户W{%nP u#j7G在adobe 的网站上有一篇安装指南:
#kSq(o8@9]/^2L['^7[04C:`j-Ws6O9?F$^0http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started#Windows3sNews_最具影响力地理空间信息门户5yJ,R ic
3sNews_最具影响力地理空间信息门户Z P8ae|\n1no个人觉得对cygwin很熟悉的人才能一次安装成功,对于不熟悉cygwin的人估计要废半天劲,因此我把我的安装过程记录下来,与大家分享。
a$a\,s\\Zy1K0 3sNews_最具影响力地理空间信息门户uy&Z(Du4Oa首先我的机器是windows xp sp2, cygwin ,和flex sdk 安装在c盘根目录下面。3sNews_最具影响力地理空间信息门户9{6F9h~.F0bv Og
3sNews_最具影响力地理空间信息门户 o.l/F1d rD2F6X要安装Alchemy ,首先需要安装cygwin 和flex sdk 3.2.
W;~k!O g6~9bm-]0 3sNews_最具影响力地理空间信息门户J0t3I+f$~_ Emcygwin的下载地址:http://www.cygwin.com3sNews_最具影响力地理空间信息门户4r5u}+R8I }Q;B
zA_)` u l&L,p0安装cygwin的时候一定要选择
2 到 Select Package这时,需要选择以下3个东西
1 到 Archive 下面去选择安装 zip 包
2 到 Devel 下面去选择安装 gcc-g++ 包
3 到 Perl 目录,选择完全安装 (Install)
0S*H!op:k B0
2]5l@X0vs7m0flex sdk 的下载地址为:http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3
yI0b$y7dA l ]!Y3vd06LvK[b7F-R)E ~0注意 要下载Adobe Flex SDK,这个sdk比较大,有100多M。
+i&_y"dl0 3sNews_最具影响力地理空间信息门户2wNss-pAlchemy 的下载地址为:3sNews_最具影响力地理空间信息门户6f8XH W,[-I0T ~|
3sNews_最具影响力地理空间信息门户&\ d \I3`%v }ONehttp://labs.adobe.com/technologies/alchemy/3sNews_最具影响力地理空间信息门户#D6DR PK9Mu0o(p0w
3sNews_最具影响力地理空间信息门户ZXt/m?上面3个文件下载完后,我们就可以安装的。3sNews_最具影响力地理空间信息门户_3g_(pbd
%efT)uhx0
+d o2SJJ:D0i%bu*HH#v*w y#A8T0第一步:安装cygwin,cygwin默认安装在c盘根目录下。3sNews_最具影响力地理空间信息门户4Q@]/dCt
#Yay5`-@ h0第二步:安装java,因为我的机器已经安装了java,所以略过此步。3sNews_最具影响力地理空间信息门户G`)r7i x
2DM {6F6Sa C3b+B0第三步:解压Adobe Flex SDK到c盘根目录,重命名为flex,注意flex目录下面为bin 等目录。3sNews_最具影响力地理空间信息门户3P'U,N"\_1Z&f*i6_n|\
cB!F S*E)Y!`"WwX0第四步:解压Alchemy 到C盘根目录,重命名为Alchemy ,注意Alchemy目录下面直接为bin等目录。
G/~:QYg*V4j#aO\(h09Sp:d[$N6Y/[0第五步:修改C:\cygwin\etc目录下的profile文件
PiY+I){l2` f#J#H7`)T07F1k'|F7z-_L0PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/flex/bin:$PATH
_ gy4B|0将flex sdk 的bin目录加入到cygwin的path中。红色部分为新添加的。
第六步,打开cygwin,切换到Alchemy 目录,Alchemy 目录路径为/cygdriver/c/alchemy。在cygwin中cd 是进入目录,cd ..是返回到上级目录,关于bash的详细命令请用百度搜索一下。
V/q(b9j8J"HH&~S0G*}X)[r0第七步:执行 ./config,并根据echo出来的提示,执行source /cygdrive/c/alchemy/alchemy-setup
YkjV,cF9\'^.ZI0
r:D o5]+w,j0第八步:关闭cygwin,编辑C:\alchemy目录下的alchemy-setup文件(这个文件是执行./config命令新生成的),将#export ADL=/path/to/fyou/bin/adl (or adl.exe)一句修改成export ADL=/cygdrive/c/flex/bin/adl.exe,注意去掉#注释符。
k:n9fE2H!kG|/^2g-|0 3sNews_最具影响力地理空间信息门户ce Po!D ~第九步:编辑C:\cygwin\etc目录下bash.bashrc文件,在文件最后加入下面三行
#OV(U\]dgT0j^Q|5Lj#hW0source /cygdrive/c/alchemy/alchemy-setup
&dL ] ]B Q ~;Pm0PATH=$ALCHEMY_HOME/achacks:/cygdrive/c/flex/bin:$PATH3sNews_最具影响力地理空间信息门户1pk0Qf0mb*UxDT
export PATH
第十步: 打开C:\cygwin,切换到/cygdriver/c/alchemy/bin目录,执行下面的命令:
7^{ lp/tT.xA0s f#Kz|0ln -s llvm-stub llvm-stub.exe3sNews_最具影响力地理空间信息门户L y-aJg'DT8Yh
第十一步: 切换到/cygdriver/c/alchemy/samples/stringecho目录:
'm0f3jH U0 3sNews_最具影响力地理空间信息门户)M*f$]w8D执行which gcc3sNews_最具影响力地理空间信息门户9[%ITX(b
然后执行:
V&` Gw%K9?6Z0alc-on;gcc stringecho.c -O3 -Wall -swc -o stringecho.swc3sNews_最具影响力地理空间信息门户%Y8Tf`Ob
9BMKHv9Q0一定要按照上面的方式执行即alc-on命令和gcc stringecho.c -O3 -Wall -swc -o stringecho.swc命令一起执行,否则会报编译错误,不能正确的编译。
;aWp*@D0 3sNews_最具影响力地理空间信息门户FZ;n'Gl_%Y&C ]在编译的过程中你会看到如下提示:3sNews_最具影响力地理空间信息门户:R7|0@9S-o7T|
$ gcc stringecho.c -O3 -Wall -swc -o stringecho.swc WARNING: While resolving call to function 'main' arguments were dropped! 2544.achacks.swf, 363806 bytes written frame. rate: 60 frame. count: 1 69 : 4 72 : 363736 76 : 33 1 : 0 0 : 0 frame. rate: 24 frame. count: 1 69 : 4 77 : 506 64 : 31 63 : 16 65 : 4 9 : 3 41 : 26 82 : 471 1 : 0 0 : 0 adding: catalog.xml (deflated 75%) adding: library.swf (deflated 61%)3sNews_最具影响力地理空间信息门户v|/_J2hX'e&`#l
至此,一个c文件就编译成了一个swc库,我们在as代码中就可以使用这个swc了。
详细的配置过程见:http://labs.adobe.com/technologies/alchemy/
使用Cygwin配置的时候碰到了几处麻烦。首先是路径设置问题,我直接把flex目录下的bin目录copy到了c盘。
其次是编译时报错:
[Compiler] Error #1063: Unable to open file: /cygdrive/c/Users/sascha/Applications/Alchemy/flashlibs/global.abc.
[Compiler] Error #1063: Unable to open file: /cygdrive/c/Users/sascha/Applications/Alchemy/flashlibs/playerglobal.abc.
需要修改alchemy目录里 hacks.pl 文件:
把if ( `uname` = ~ / CYGWIN /) 改为if ( `/ bin / uname` = ~ / CYGWIN /
要注意的是,不要把alchemy安装到cygwin的目录下。