lua脚本

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载lua

lua下载:试验中下载的是5.2.3,使用其他版本链接时可能会报错找不到符号

二、编译

该工程文件内容较少,使用的是makefile,若想编译成vs需要查看对应的库文件依赖。本次编译顺带生成动态库,修改src/makefile文件如下

LUA_SO=liblua.so

LUAC_T= luac
LUAC_O= luac.o

ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
ALL_A= $(LUA_A)

# Targets start here.
default: $(PLAT)

all:    $(ALL_T)

o:      $(ALL_O)

a:      $(ALL_A)

$(LUA_A): $(BASE_O)
        $(AR) $@ $(BASE_O)
        $(RANLIB) $@

$(LUA_T): $(LUA_O) $(LUA_A)
        $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)

$(LUAC_T): $(LUAC_O) $(LUA_A)
        $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)

$(LUA_SO): $(BASE_O)
        $(CC) -o $@ $(MYCFLAGS)  -shared -fPIC -ldl -lm

测试代码

代码如下(示例):

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
extern "C"
{
 
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
};
 
void TestLua();
 
int main()
{
    TestLua();
    return 0;
}
 
void TestLua()
{
    lua_State *L = luaL_newstate();
    luaopen_base(L); //
    luaopen_table(L); //
    luaopen_package(L); //
    luaopen_io(L); //
    luaopen_string(L); //
 
    luaL_openlibs(L); //打开以上所有的lib
 
    string str;
    while (true)
    {
        cout << "输入lua文件路径:" << endl;
        getline(cin, str, '\n');
        if (luaL_loadfile(L, str.c_str())
            || lua_pcall(L, 0, 0, 0) )
        {
            const char * error = lua_tostring(L, -1) ;
            cout << string(error) << endl;
            return;
        }
        else
        {
            break;
        }
 
    }
 
    int a = 0;
    int b = 0;
 
    // 获取a的值
    lua_getglobal(L, "a");
    if (!lua_isnumber(L, -1))
    {
        cout << "-2 error" << lua_isnumber(L, -1) << lua_isnumber(L, -1) << endl;
        return ;
    }
 
    a = lua_tonumber(L, -1);
 
    // 获取b的值
    lua_getglobal(L, "b");
    if (!lua_isnumber(L, -1))
    {
        cout << "-1 error" << endl;
        return ;
    }
    
    b = lua_tonumber(L, -1);
 
    cout << "a = " << a << " b = " << b << endl;
    cout << "a + b = " << a + b << endl;
 
    lua_close(L);
 
}

测试脚本

代码如下(lua.lua):

a=100
b=20

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值