一、Ubuntu下安装Lua 5.1
首先去下载Lua 5.1 ,链接为:
http://www.lua.org/download.html
我下载的是lua-5.1.5,系统是ubuntu12.10
进入到lua-5.1.5的目录下,运行make linux。
报错:
luaconf.h:275:31:致命错误:readline/readline.h:没有那个文件或目录
编译中断。
于是安装了:
sudoapt-get install libreadline6
sudoapt-get install libreadline6-dev
再运行makelinux,又报错:
/usr/bin/ld:cannot find -lncurses
collect2:错误:ld返回1
于是安装了:
sudoapt-get install libevent-dev
依旧报错,于是再安装了:
sudoapt-get install ncurses-dev
然后makelinux和makeinstall就行了。
最后在命令行里运行lua即可出现
Lua5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
表示安装成功了,可以在里面写lua代码。
退出时按Ctrl+D退出。
二、在C中调用lua
先建立一个hello.c文件,借用《Lua程序设计 第二版》里的样例代码:
#include<stdio.h>
#include<string.h>
#include<lua.h>
#include<lualib.h>
#include<lauxlib.h>
int main(int argc ,char *argv[])
{
char buff[256];
int error;
lua_State *L= luaL_newstate();
luaL_openlibs(L);
while(fgets(buff,sizeof(buff),stdin) !=NULL){
error = luaL_loadbuffer(L,buff,strlen(buff),"line") || lua_pcall(L,0,0,0);
if(error){
fprintf(stderr,"%s",lua_tostring(L,-1));
lua_pop(L,1);
}
}
lua_close(L);
printf("xxx");
getchar();
return 0;
}
使用命令编译文件
gcc -o hello hello.c /usr/local/lib/liblua.a -I /usr/local/include/ -lm -ldl
然后就可以运行了
./hello
使用截图