Lua入门

翻译 2006年06月26日 13:55:00
 
Lua入门
Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过下面的教程,会让学习Lua更加简单。

本教程涵盖了Lua5.1。在Lua的每一个版本中都有一些非常不同之处。下面的示例代码将不能在老版本的Lua下运行。如果你仍然在使用老版本而且不愿意升级,不用担心,我已经在文章底部提供了4.0和5.0教程的源代码下载连接。好了,让我们开始吧!

首先,你需要下载Lua。你需要从Lua下载页面去下载源代码。如果你需要编译好了的二进制库,你能在LuaBinaries 中找到你想要的库(lib or dll)。

现在,我们需要安装Lua。在Linux下,你应该先解压文件,然后以root用户在命令行键入"make linux"和"make linux install"。如果你需要帮助,请参考源代码文件夹中的INSTALL文件。现在,我下载了windows平台下的二进制库包并把它们解压到"C:/Program Files/lua5.1"。

在Linux下不需要我们做任何设置,但是在windows平台下我们必须配置Visual C++,以便让编译器和连接器找到Lua文件。

  1. 打开Visual C++,选择Tools菜单中的选项菜单。
  2. 展开"项目",并选择"VC++ 目录"。
  3. 选择"包含文件",添加一个新路径"C:/Program Files/lua5.1/include"。
  4. 在选择"库文家",添加路径"C:/Program Files/lua5.1/lib/dll"(这里假设你下载的库为dll,你也可以下载静态链接库)。
  5. 确定。 

现在你可以开始编译你的第一个Lua应用了。

使用Lua开始你的第一个程序

这个程序简短且直接,下面做一点说明:

  1. lua_open()返回一个指向Lua解释器的一个指针。
  2. luaL_openlibs()用于装载Lua库,它提供了一些简单的函数,如:print。
  3. 通过调用luaL_dofile()执行脚本。它的作用是读取并解释脚本。
  4. 最后,通过lua_close()函数关闭Lua。

保存文件为luatest.cpp。如果你直接使用C而不是C++,将文件名改为luatest.c,然后将extern "C"删除。

#include <stdio.h>

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
/* Lua解释器指针 */
lua_State* L;
int main ( int argc, char *argv[] )
{
/* 初始化Lua */
L = lua_open();
/* 载入Lua基本库 */
luaL_openlibs(L);
/* 运行脚本 */
luaL_dofile(L, "test.lua");
/* 清除Lua */
lua_close(L);
/* 暂停 */
printf( "Press enter to exit…" );
getchar();
return 0;
}

下面是test.lua的内容。

-- simple test
print "Hello, World!"

编译

在Linux下,在命令行键入:

g++ luatest.cpp -llua -ldl -o luatest

然后,键入下列命令运行:

./luatest

如果没有问题,程序将在终端输出Hello, World!

在Visual C++你将需要进行下列步骤:

  1. 创建一个新的空Win32控制台应用工程。
  2. 将"luatest.cpp"加入你的工程。
  3. 选择项目菜单中的属性菜单。
  4. 在"连接器"的"输入"栏目的"附加依赖项"中输入"lua5.1.lib"。
  5. 确定。

此时,按F7构建程序。

如果你采用的是dll库,请确保将其放在应用程序的目录中或者windows系统能够找到它的地方。如果你采用的是静态连接库,则不需要。

 (本文由Groov0V翻译,转载请指明出处!)

相关文章推荐

在DirectX 3D中使用CEGUI

一、CEGUI简介    CEGUI,为Crazy Eddies GUI的缩写,它是一个用C++开发的面向对象的免费界面库,针对游戏开发者,提供了3D环境中的窗口及其部件的图形API。CEGUI在0....

利用CEGUI+Lua实现灵活的游戏UI框架

在上一篇文章中,介绍了一种基于组件方式的游戏UI架构设计方案,在这里,笔者将介绍如何利用CEGUI和Lua来实现这种灵活的框架。       CEGUI是一个兼容OpenGL、DirectX的优秀开源...

利用CEGUI和Lua实现框架

在上一篇文章中,介绍了一种基于组件方式的游戏UI架构设计方案,在这里,笔者将介绍如何利用CEGUI和Lua来实现这种灵活的框架。       CEGUI是一个兼容OpenGL、DirectX的优秀开源...

调用Lua函数

翻译自http://gamedevgeek.com/tutorials/calling-lua-functions/调用Lua函数这是Lua脚本语言教程系列之二。在第一篇中,我们学习了在Windows...

在Lua中调用C++函数

翻译自http://gamedevgeek.com/tutorials/calling-c-functions-from-lua/在Lua中调用C++函数我的第二部分教程讲解了怎样在C++中调用Lua...

Lua入门教程

  • 2016-02-19 22:35
  • 1.20MB
  • 下载

Lua快速入门 pdf

  • 2015-01-08 17:25
  • 234KB
  • 下载

Lua语言入门(三)

协同程序36、协同程序(coroutine) 4种状态:挂起(suspended)、运行(running)、死亡(dead)、正常(normal)创建(挂起状态):local co = corout...

LUA编程入门

  • 2014-10-23 09:46
  • 1.71MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)