AngelScript环境搭建

DinS          Written on 2018/1/14

本专题介绍如何在c++中使用脚本,使用的库是AngelScript,非常强大好用。专题只能够涵盖有限的内容,建议读者去官网深入研究。

一、脚本语言

提到脚本语言,会想到大名鼎鼎的python或者javascript。首先要问的问题是脚本语言和编程语言的区别在哪里?
最主要的的区别在于是否有编译过程。编程语言从文本要经过编译,转换成机器语言,得到最后的可执行文件。以后直接运行编译过后的文件即可运行程序,效率高。
脚本语言不存在编译过程,从文本直接通过解释器去运行,这样子更加灵活,使用起来也更容易,缺点是效率低。

现在脚本语言是很流行的,主要原因上面也提到了。那么接下来的问题就是c++是否也可以使用脚本语言?
比较著名的是LUA,但是这个主要是针对C语言的。这里介绍的AngelScript针对的是c++。这个AS估计听过的人不多,比较小众,但是好用就无所谓。至于是不是好用,读者看完整个专题后自然有评判。

还有就是在c++中使用脚本的动机。
现在需求越来越复杂,变化也越来越快。传统的写代码->编译过程显得落后了,使用脚本,我们可以灵活替换逻辑模块,不需要重新编译就能达到应对变化的效果。另外的一个考虑就是跨平台,不同编译器之间往往不兼容,但是由于脚本仅仅是文本所以可以跨平台。

二、配置AS

官网给出了4种配置AS的方式,这里只具体分析一种。
最省事的办法是直接把源代码加入工程,肯定不会遇到其他的问题,但是可能污染你的代码。最好的方式是编译成static library,然后由工程引用,这样对代码影响最小。咱们看看这种思路如何做。(对lib不清楚的可参见《静态库(lib)》)
下载AS,解压,进入如下目录:

这里面涵盖了绝大多数编译器,打开对应的工程即可。这里以VS2015为例

有工程的好处是可以根据我们工程的需要调整编译器的选项,这里我们用默认选项,用debug的win32好了。右键项目->生成。

然后可以在lib里找到生成文件。

接下来看看如何在工程中引用库。
首先新建工程,不多说了,然后新建一个文件夹,把这两个文件拷贝过去。

然后设置工程属性,加入附加包含目录,可以找到.h。

之后是链接器,导入库.

然后包含头文件,就可以了.

 

接下来介绍AS的框架,见《AngelScript框架介绍》。