设备:orangepi
系统:Linux orangepi3-lts 5.16.17-sun50iw6 #3.0.8
下载安装lua库
官网链接:https://www.lua.org/download.html
curl -R -O http://www.lua.org/ftp/lua-5.4.6.tar.gz
tar zxf lua-5.4.6.tar.gz
cd lua-5.4.6
make all test
实操一下:自动将lua库/头文件安装到了系统目录。

写一个C++程序
这里我是让ChatGPT帮我写的:加载一个名字叫做sum.lua的文件,执行里面的函数 sum()
#include <iostream>
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
int main() {
// 创建一个新的Lua状态
lua_State *L = luaL_newstate();
luaL_openlibs(L);
// 加载并运行Lua脚本文件
if (luaL_dofile(L, "sum.lua") != LUA_OK) {
std::cerr << "Error loading script: " << lua_tostring(L, -1) << std::endl;
lua_close(L);
return 1;
}
// 将函数sum压入栈
lua_getglobal(L, "sum");
// 压入参数
lua_pushinteger(L, 3);
lua_pushinteger(L, 4);
// 调用Lua函数,传入2个参数,返回1个结果
if (lua_pcall(L, 2, 1, 0) != LUA_OK) {
std::cerr << "Error calling function: " << lua_tostring(L, -1) << std::endl;
lua_close(L);
return 1;
}
// 获取返回值并打印
int result = lua_tointeger(L, -1);
std::cout << "Result: " << result << std::endl;
// 关闭Lua状态
lua_close(L);
return 0;
}
再准备一个lua文件, sum.lua
-- sum.lua
function sum(a, b)
return a + b
end
实操一下:目录结构&编译&运行

