C/C++ 直接调用 Lua 程序和函数,自己摸索并实验了一下,学习过程比较曲折,不过细心分析一下,算是比较简单的运用。

  • 我自己编译安装的 Lua,且没有安装到默认路径下,因此在编译时和网上大家说的不一样,我的编译命令和参数如下:
g++ -o call_lua \
    call_lua.cpp \
    -llua -Wall -ldl \
    -I/opt/lua/5.3.2/include \
    -L/opt/lua/5.3.2/lib
  • Lua 的头文件是 C 写的,用 C++ 编译时,必须用extern "C" {}包起来,否则会编译出错,这貌似与 C++ 编译时有存在多态,而 C 没有多态有关。示例:
extern "C" {
#include "lua.h"      /* Always include this when calling Lua */
#include "lualib.h"   /* Always include this when calling Lua */
#include "lauxlib.h"  /* Always include this when calling Lua */
}

相关链接