FlasCC支持配置脚本的使用,来帮助在基于Flash的项目中构建用于跨平台的C和C++库。这篇文章将介绍FlasCC是如何使用Expat的GUN编译系统生成的配置脚本来建立Expat XML解析器库的。
配置脚本是如何工作的呢?配置脚本是一个典型的Bash脚本,它在生成一个特定环境下的makefile前执行各种收集目标环境信息的操作。它可以检查特定的工具或库是否存在,探测编译器支持的功能,检查头文件,编译并执行小的测试程序,等等。
测试程序的例子可能像下面这样:
在大多数环境中,任何这样的操作都很简单。本机的工具,头文件和编译器可以用来解答配置脚本的任何问题。
FlasCC的工具链是如何支持这些类型的技术的呢?FlasCC有一个叫做“vm projectors(虚拟机投影机)”的功能,它允许创建本机可执行文件,这些文件中编译好的C/C++代码在Flash播放器和AIR运行时所使用的相同的ActionScript虚拟机(AVM)上执行,从而拥有了不止本机而是所有FlasCC环境的特性。因此前面那个简短的被编译为一个虚拟投影机的测试程序,将会输出FlasCC环境下一个指针的大小,无论这个指针在本机环境下的大小。
实际上,这种“虚拟机投影机模式”是FlasCC的gcc和g++编译器的默认模式——并不需要额外的切换。这就意味着在很多情况下,成功使用FlasCC配置脚本唯一必要的步骤就是确保将PATH(路径)环境变量设置好以保证FlasCC的gcc和g++编译器在本地编辑器之前被找到。
配置,构建以及测试开源的Expat XML解析库的示范步骤如下:
1.在这里下载Expat源文件。
2.解压源文件
tar xf expat-2.1.0.tar.gz
3.配置Expat
cd expat-2.1.0
PATH=/path/to/flascc/sdk/usr/bin
PATH ./configure --prefix=/path/to/flascc/sdk/usr
请注意,路径必须更改为指向您所安装的FlasCC SDK。 --prefix选项告诉配置脚本你的头文件,库等的安装位置。我们正在为FlasCC构建Expat,所以我们要把这些文件安装在FlasCC SDK中。
或者,将CFLAGS=-O4加进命令会增加优化的显著性以及启用LTO(连接时间优化)。
4.构建库
PATH=/path/to/flascc/sdk/usr/bin
PATH make
5.安装库
PATH=/path/to/flascc/sdk/usr/bin
PATH make install
6.检查是否正确安装
PATH=/path/to/flascc/sdk/usr/bin:$PATH make check
在检查命令的输出内容结尾处,你应该可以看到类似下面的代码文字:
tests/runtests
Expat version: expat_2.1.0
100%: Checks: 50, Failed: 0
tests/runtestspp
Expat version: expat_2.1.0
100%: Checks: 50, Failed: 0
现在你的FlasCC SDK中包含了Expat运行的头文件和库,可以用来创建SWF文件了。一个简单的基于Flash的Expat示例包含在这里并且可以用来编译的命令是: /path/to/flascc/sdk/usr/bin/gcc expatTest.c -lexpat -emit-swf -o expatTest.swf
这里有最终的SWF文件。
配置脚本是如何工作的呢?配置脚本是一个典型的Bash脚本,它在生成一个特定环境下的makefile前执行各种收集目标环境信息的操作。它可以检查特定的工具或库是否存在,探测编译器支持的功能,检查头文件,编译并执行小的测试程序,等等。
测试程序的例子可能像下面这样:
在大多数环境中,任何这样的操作都很简单。本机的工具,头文件和编译器可以用来解答配置脚本的任何问题。
FlasCC的工具链是如何支持这些类型的技术的呢?FlasCC有一个叫做“vm projectors(虚拟机投影机)”的功能,它允许创建本机可执行文件,这些文件中编译好的C/C++代码在Flash播放器和AIR运行时所使用的相同的ActionScript虚拟机(AVM)上执行,从而拥有了不止本机而是所有FlasCC环境的特性。因此前面那个简短的被编译为一个虚拟投影机的测试程序,将会输出FlasCC环境下一个指针的大小,无论这个指针在本机环境下的大小。
实际上,这种“虚拟机投影机模式”是FlasCC的gcc和g++编译器的默认模式——并不需要额外的切换。这就意味着在很多情况下,成功使用FlasCC配置脚本唯一必要的步骤就是确保将PATH(路径)环境变量设置好以保证FlasCC的gcc和g++编译器在本地编辑器之前被找到。
配置,构建以及测试开源的Expat XML解析库的示范步骤如下:
1.在这里下载Expat源文件。
2.解压源文件
tar xf expat-2.1.0.tar.gz
3.配置Expat
cd expat-2.1.0
PATH=/path/to/flascc/sdk/usr/bin

请注意,路径必须更改为指向您所安装的FlasCC SDK。 --prefix选项告诉配置脚本你的头文件,库等的安装位置。我们正在为FlasCC构建Expat,所以我们要把这些文件安装在FlasCC SDK中。
或者,将CFLAGS=-O4加进命令会增加优化的显著性以及启用LTO(连接时间优化)。
4.构建库
PATH=/path/to/flascc/sdk/usr/bin

5.安装库
PATH=/path/to/flascc/sdk/usr/bin

6.检查是否正确安装
PATH=/path/to/flascc/sdk/usr/bin:$PATH make check
在检查命令的输出内容结尾处,你应该可以看到类似下面的代码文字:
tests/runtests
Expat version: expat_2.1.0
100%: Checks: 50, Failed: 0
tests/runtestspp
Expat version: expat_2.1.0
100%: Checks: 50, Failed: 0
现在你的FlasCC SDK中包含了Expat运行的头文件和库,可以用来创建SWF文件了。一个简单的基于Flash的Expat示例包含在这里并且可以用来编译的命令是: /path/to/flascc/sdk/usr/bin/gcc expatTest.c -lexpat -emit-swf -o expatTest.swf
这里有最终的SWF文件。
原文链接:http://blogs.adobe.com/flascc/2012/11/17/using-configure-scripts-with-flascc/