搭建Lua
环境时,安装程序会把以下5
个头文件拷贝到指定目录(默认为/usr/local/include/
):
-rw-r--r--. 1 root root 14825 Jun 3 09:03 lua.h
-rw-r--r--. 1 root root 20581 May 20 13:39 luaconf.h
-rw-r--r--. 1 root root 8433 Oct 29 2014 lauxlib.h
-rw-r--r--. 1 root root 1173 Feb 6 2014 lualib.h
-rw-r--r--. 1 root root 191 Dec 22 2004 lua.hpp
先从最简单的lua.hpp
来看:
// lua.hpp
// Lua header files for C++
// <<extern "C">> not supplied automatically because Lua also compiles as C++
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
可以看到lua.hpp
只是包含了其它的几个头文件,供C++
程序使用。
lua.h
定义了Lua
提供的最基本的功能:创建Lua
环境,调用Lua
函数,在Lua
环境中读写全局变量等。lua.h
定义的所有成员(包括函数,宏等)都是用lua_
或LUA_
作为前缀。
lauxlib.h
定义了Lua
辅助库(auxiliary library
)提供的的函数,这个文件里定义的成员都是以luaL_
作为前缀。Lua
辅助库在lua.h
定义的基础API
之上,又封装了一层API
,以提供更好的通用性。Lua
辅助库并不会访问Lua
的内部,所有操作都是通过lua.h
的基础API
去操作。
luaconf.h
会定义Lua
环境的配置信息。
lualib.h
定义了Lua
语言标准库的名字,以及打开这些库的函数。