C调用LUA
通过一个简单的例子,看C是如何调用LUA的,这样将原有C处理数据的逻辑用LUA来做,省去了编译C的过程。
代码,如下:
#include <stdio.h>
#include <string.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
lua_State* L = NULL;
int main()
{
L = lua_open();
luaL_openlibs(L);
if (luaL_loadfile(L, "test.lua") || lua_pcall(L, 0,0,0))
error(L, "cannot run configuration file:%s", lua_tostring(L, -1));
double x = 1.0;
double y = 5.0;
double z;
lua_getglobal(L, "f");
lua_pushnumber(L, x);
lua_pushnumber(L, y);
lua_pcall(L, 2,1,0);
// printf("%f\n", f(1.0, 2.0));
return 0;
}
编译参数:
gcc a6.c -I/usr/include/lua5.1 -ldl -lm -llua5.1