欢迎前往个人博客 驽马点滴 和视频空间 哔哩哔哩-《挨踢日志》
序
Lua是一门嵌入式语言,这意味着其他应用可以链接它,从而将它作为一个库,以便使用它的所有特性。
本篇讲述在OS X环境下,如何在C/C++代码中嵌入Lua。
大纲
- 编译库文件;
- 创建C++控制台应用程序;
- 添加头文件搜索路径;
- 添加lua库文件
liblua.a
; - 输出Hello World
正文
1.编译库文件
在如何初始化Lua环境一文中,已经完成了lua库文件的编译过程,并生成了静态库 liblua.a
:
cd /Users/huaxingzheng/develop/lua-5.3.4/src
ls *.a
输出
liblua.a
2.创建C++控制台应用程序
- 打开Xcode
- 创建新的工程
- 选择macOS系统下的Command Line Tool类型的应用程序,点击下一步
- 填写Product Name(比如LuaTest),Language选择C++,点击下一步
- 选择工程的保存路径,点击创建
- 运行测试
3.添加头文件搜索路径
如图所示,单击工程LuaTest,选中Build Settings,在搜索栏中查找Header Search Paths,将其配置为
/Users/huaxingzheng/develop/lua-5.3.4/src
这样,我们为该工程添加了lua-5.3.4的头文件的查找路径
4. 添加lua库文件liblua.a
如图所示,我们在LuaTest工程的Build Phases中,添加liblua.a
库文件
5. 输出Hello World
将main.cpp
文件中的内容替换成以下内容,保存并运行:
#include <iostream>
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
int main(int argc, const char * argv[]) {
lua_State *L = luaL_newstate();
luaL_openlibs(L);
int err = luaL_dostring(L, "print('Hello World')");
if (err)
{
printf("---- ERROR!\n");
lua_pop(L, 1); // pop error message from the stack
}
else
{
printf("---- SUCCESS!\n");
}
lua_close(L);
return 0;
}
输出
Hello World
---- SUCCESS!
Program ended with exit code: 0