Alchemy

Alchemy 是adobe 推出的把C++代码编译成as3 字节码的开源项目,这对于开源爱好者和RIA开发者绝对是一个好消息,以后c++ 的开源工程都可以编译成as库来供RIA开发者使用了。不过现在Alchemy  发布的还是release beta 版,看网上评论对c++ 的语法好像有一些限制,具体还没有研究,目前只是才安装好Alchemy 。以后研究好了再和大家分享。

Alchemy  在windows下的安装是一件很麻烦的事情,需要在cygwin下安装。

在adobe 的网站上有一篇安装指南:

http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started#Windows

个人觉得对cygwin很熟悉的人才能一次安装成功,对于不熟悉cygwin的人估计要废半天劲,因此我把我的安装过程记录下来,与大家分享。

首先我的机器是windows xp sp2, cygwin ,和flex sdk 安装在c盘根目录下面。

要安装Alchemy  ,首先需要安装cygwin 和flex sdk 3.2.

cygwin的下载地址:http://www.cygwin.com

安装cygwin的时候一定要选择

2 到 Select Package这时,需要选择以下3个东西

1 到 Archive 下面去选择安装 zip 包

2 到 Devel 下面去选择安装 gcc-g++ 包

3 到 Perl 目录,选择完全安装 (Install)

flex sdk  的下载地址为:http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

注意 要下载Adobe Flex SDK,这个sdk比较大,有100多M。

Alchemy  的下载地址为:

http://labs.adobe.com/technologies/alchemy/

上面3个文件下载完后,我们就可以安装的。

第一步:安装cygwin,cygwin默认安装在c盘根目录下。

第二步:安装java,因为我的机器已经安装了java,所以略过此步。

第三步:解压Adobe Flex SDK到c盘根目录,重命名为flex,注意flex目录下面为bin 等目录。

第四步:解压Alchemy  到C盘根目录,重命名为Alchemy ,注意Alchemy目录下面直接为bin等目录。

第五步:修改C:\cygwin\etc目录下的profile文件

PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/flex/bin:$PATH
将flex sdk 的bin目录加入到cygwin的path中。红色部分为新添加的。

第六步,打开cygwin,切换到Alchemy  目录,Alchemy  目录路径为/cygdriver/c/alchemy。在cygwin中cd 是进入目录,cd  ..是返回到上级目录,关于bash的详细命令请用百度搜索一下。

第七步:执行 ./config,并根据echo出来的提示,执行source /cygdrive/c/alchemy/alchemy-setup

第八步:关闭cygwin,编辑C:\alchemy目录下的alchemy-setup文件(这个文件是执行./config命令新生成的),将#export ADL=/path/to/fyou/bin/adl  (or adl.exe)一句修改成export ADL=/cygdrive/c/flex/bin/adl.exe,注意去掉#注释符。

第九步:编辑C:\cygwin\etc目录下bash.bashrc文件,在文件最后加入下面三行

source /cygdrive/c/alchemy/alchemy-setup
PATH=$ALCHEMY_HOME/achacks:/cygdrive/c/flex/bin:$PATH
export PATH

第十步: 打开C:\cygwin,切换到/cygdriver/c/alchemy/bin目录,执行下面的命令:

ln -s llvm-stub llvm-stub.exe

第十一步: 切换到/cygdriver/c/alchemy/samples/stringecho目录:

执行which gcc
然后执行:

alc-on;gcc stringecho.c -O3 -Wall -swc -o stringecho.swc

一定要按照上面的方式执行即alc-on命令和gcc stringecho.c -O3 -Wall -swc -o stringecho.swc命令一起执行,否则会报编译错误,不能正确的编译。

在编译的过程中你会看到如下提示:

$ 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%)

至此,一个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的目录下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值